【发布时间】:2015-07-09 09:11:52
【问题描述】:
我有一个组件的列表视图,该组件绑定到 BreakdownViewRow 类型的可观察集合。
每个单元格都包含一个在 EDIT 和 DISPLAY 模式下运行的组件。
我需要找到一种方法来以编程方式更改单元格内容的模式,但尝试迭代列表视图中的项目会返回 BreakdownViewRow 类型的对象。
有没有一种方法可以访问包含每个组件的单元格,而不是获取可观察集合中存在的项目?
我的组件的代码(ContainerSelected 事件绑定在 XAML 中,并正确触发传递 EditableControlContainer 对象作为发送者):
public partial class ArrearsBreakdownView : UserControl
{
private ObservableCollection<BreakdownViewRow> rows;
public ObservableCollection<BreakdownViewRow> Rows {
get { return rows; }
set { rows = value; }
}
public BreakdownView() {
InitializeComponent();
rows = new ObservableCollection<BreakdownViewRow>();
Populate();
this.DataContext = this;
}
public void Populate() {
rows.Add(new BreakdownViewRow(2015, 1000.50M, "TE1 \t Test Code 1", "This is a test row"));
rows.Add(new BreakdownViewRow(2014, 100M, "TE1 \t Test Code 1", "Another row"));
rows.Add(new BreakdownViewRow(2013, 150M, "TE1 \t Test Code 1", "This is a test row"));
}
public void ContainerSelected(object sender, RoutedEventArgs e) {
EditableControlContainer ecc = (EditableControlContainer)sender;
foreach (ListViewItem item in grdArrears.Items) {
//Here, I get a BreakdownViewRow object, when what I need is the EditableControlContainer object,
//or the cell container
}
int stop = 1;
}
}
【问题讨论】: