gpt4 book ai didi

c# - 如何将字符串类型的 ObservableCollection 绑定(bind)到 Datagrid

转载 作者:行者123 更新时间:2023-12-03 10:57:17 25 4
gpt4 key购买 nike

我有一个相当简单的查询,我有一个 ObservableCollection类型 string调用投诉 .现在我想绑定(bind)这个ObservableCollectionDataGrid有两列:复选框模板列和 Complaint包含投诉的列。我想知道如何实现这一目标?我正在使用 MVVM。我设置了ItemsSource DataGrid 的属性(property)至Complaints但看不到数据,因为我不知道该放什么 Binding DataGrid 的第二列.我该怎么做呢?

My View Model


public class MyViewModel() : INotifyPropertyChanged
{
private ObservableCollection<string> _complaints;

public ObservableCollection<string> Complaints
{
get
{
return _complaints;
}
set
{
_complaints = value;
NotifyPropertyChanged("Complaints");
}
}

}

My Datagrid


<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>

最佳答案

您需要设置 DataGridTextColumn 的 Binding 属性。此绑定(bind)与源集合的数据项相关。由于您的源集合本身就是您要在列中显示的项目,因此绑定(bind)将是项目本身。

<DataGridTextColumn Width="93.4782*" Header="Complaints" Binding="{Binding}"/>

或等效地:
<DataGridTextColumn Width="93.4782*" Header="Complaints" Binding="{Binding Path=.}"/>

通常,对于 DataGrid,您将绑定(bind)到具有各种属性的对象集合,您希望在列中显示每个对象,而不仅仅是字符串集合。

型号:
public class Complaint : INotifyPropertyChanged
{
public bool IsActive { get; set; }
public string Content { get; set; }
...
}

查看型号:
public class ComplaintsViewModel
{
public ObservableCollection<Complaint> Complaints { get; set; }
...
}

查看:
<DataGrid ItemsSource="{Binding Complaints}">
<DataGrid.Columns>
<DataGridCheckBoxColumn Header="Active" Binding="{Binding IsActive}"/>
<DataGridTextColumn Header="Content" Binding="{Binding Content}"/>
</DataGrid.Columns>
<DataGrid/>

关于c# - 如何将字符串类型的 ObservableCollection 绑定(bind)到 Datagrid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45775544/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com