C# WPF网格中包含多列的ItemSource绑定
我在学习遵循MVVM模式的WPF时,在XAML中遇到了一个问题,我将ItemSource绑定到一个网格中。目前,我正在将每个列绑定到模型中存在的一个公共属性,该属性运行良好 我遇到的问题是,我也不知道如何绑定Grids ItemSource,因为之前我已经将其绑定到了一个属性,但是当执行此操作时,它将只显示该属性的数据,是否有一种方法可以绑定它以便显示两列的数据。 谢谢 主窗口.XamlC# WPF网格中包含多列的ItemSource绑定,c#,wpf,mvvm,C#,Wpf,Mvvm,我在学习遵循MVVM模式的WPF时,在XAML中遇到了一个问题,我将ItemSource绑定到一个网格中。目前,我正在将每个列绑定到模型中存在的一个公共属性,该属性运行良好 我遇到的问题是,我也不知道如何绑定Grids ItemSource,因为之前我已经将其绑定到了一个属性,但是当执行此操作时,它将只显示该属性的数据,是否有一种方法可以绑定它以便显示两列的数据。 谢谢 主窗口.Xaml <ListView Name="UserGrid" Grid.Row="1" Margin="
<ListView Name="UserGrid" Grid.Row="1" Margin="4,178,12,13" ItemsSource="{Binding ClientRatesPreAwr}" >
<ListView.View>
<GridView x:Name="grdTest">
<GridViewColumn Header="PreAWR" DisplayMemberBinding="{Binding ClientRatesPreAwr}" Width="50"/>
<GridViewColumn Header="PostAWR" DisplayMemberBinding="{Binding ClientRatesPostAwr}" Width="50"/>
</GridView>
</ListView.View>
</ListView>
ListView ItemSource应该绑定到模型/视图模型中的(ClientRates?)项集合,而不是单个属性。您必须将ListView绑定到一个
ObservableCollection
<ListView Name="Items" ItemsSource={Binding Items}>
<ListView.View>
<GridView>
<GridViewColumn Width="200" Header="First name" DisplayMemberBinding="{Binding FirstName}"></GridViewColumn>
<GridViewColumn Width="200" Header="Last name" DisplayMemberBinding="{Binding LastName}"></GridViewColumn>
</GridView>
</ListView.View>
</ListView>
private ObservableCollection<Contact> items;
public ObservableCollection<Contact> Items
{
get { return items; }
set
{
if (value != items)
{
items = value;
NotifyOfPropertyChange(() => Items);
}
}
}
私人可观测收集项目;
公共可观测收集项目
{
获取{返回项;}
设置
{
如果(值!=项目)
{
项目=价值;
财产变更通知(()=>项);
}
}
}
此外,我建议使用Caliburn.Micro MVVM框架。它使用方便、舒适。这里是用于应用Caliburn.Micro的项资源应该绑定到模型对象的集合,最好是
可观测集合
。
<ListView Name="Items" ItemsSource={Binding Items}>
<ListView.View>
<GridView>
<GridViewColumn Width="200" Header="First name" DisplayMemberBinding="{Binding FirstName}"></GridViewColumn>
<GridViewColumn Width="200" Header="Last name" DisplayMemberBinding="{Binding LastName}"></GridViewColumn>
</GridView>
</ListView.View>
</ListView>
private ObservableCollection<Contact> items;
public ObservableCollection<Contact> Items
{
get { return items; }
set
{
if (value != items)
{
items = value;
NotifyOfPropertyChange(() => Items);
}
}
}