【发布时间】:2018-01-28 06:08:02
【问题描述】:
我有一个相当简单的查询,我有一个类型为string 的ObservableCollection,称为投诉。现在我想将此ObservableCollection 绑定到具有两列的DataGrid:复选框模板列和包含投诉的Complaint 列。我想知道如何实现这一目标?我正在使用 MVVM。我已将DataGrid 的ItemsSource 属性设置为Complaints,但看不到数据,因为我不知道在Binding 的第二列中输入什么DataGrid。我该怎么做?
我的视图模型
public class MyViewModel() : INotifyPropertyChanged
{
private ObservableCollection<string> _complaints;
public ObservableCollection<string> Complaints
{
get
{
return _complaints;
}
set
{
_complaints = value;
NotifyPropertyChanged("Complaints");
}
}
}
我的数据网格
<DataGrid x:Name="dg_pc" ItemsSource="{Binding Path=Complaints}" Grid.Column="0">
<DataGrid.Columns>
//Checkbox Template Column.
<DataGridTemplateColumn Width="6.5217*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox x:Name="cb_datagrid" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
//This is the column, where I need to display the **Complaint** Collection
<DataGridTextColumn Width="93.4782*"Header="Complaints" />
</DataGrid.Columns>
</DataGrid>
【问题讨论】:
-
好吧,如果你能提供一些代码,那将会很有用。但这里有一个猜测:您是否将网格 DataContext 设置为“投诉”?
-
添加了代码。
-
输出窗口中有什么关于数据错误的信息吗?
-
不,与此无关。
-
我可以看到网格中的数据网格行,因为数据存在,但实际上看不到数据,因为在带有
Complaints标题的列中没有任何绑定。