我在 UserControl1 中有一个 UserControl1 和另一个 UserControl2。在用户控件 2 中,我有一个列表视图。
我从数据库中获取一个数据集,我想将“MyTable”与列表视图绑定。所以我在后面的代码中做了如下所示。
UserControl1.UserControl2.lstview.ItemsSource = DataSet.Tables["MyTable"].DefaultView;
上述方法有效。但问题是,在一列中有一个复选框作为单元格模板。
<GridViewColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding isok, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Width="20" Height="15" />
</DataTemplate>
</GridViewColumn.CellTemplate>
[isok 是 MyTable 中的位类型列]
但是当我通过代码更新 isok 列时,它并没有反映在 UI 中。即,复选框未选中或未选中。
所以也许这可能是没有将绑定模式设置为 2 方式的问题。所以我做了如下所示。但是当我这样做时,列表视图中没有显示数据,如下所示!
这里可能是什么问题???
Binding b = new Binding("DataSet.Tables");
b.Source = DataSet.Tables["MyTable"].DefaultView;
b.Mode = BindingMode.TwoWay;
UserControl1.UserControl2.lstview.SetBinding(ListView.ItemsSourceProperty, b);
我正在更新列值,如下所示
DataView dv = (DataView)lstview.ItemsSource;
foreach (DataRow dr in dv.Rows)
{
dr["isok"] = isselected;
}
注意:这里没有 MVVM