如何将整个Binding对象存储在DataGrid的一行中
本文关键字:一行 DataGrid Binding 存储 对象 | 更新日期: 2023-09-27 18:02:45
我是WPF的新手,所以可能有一个简单的答案,但对我来说不是很明显。
网格显然代表了我的配置端口对象的集合。我想存储配置端口对象(这是每一行的绑定),以便在单击网格单元格时将其传递给MVVM链中的下一个UserControl。
我确实发现了这个问题,但是评论部分正是我所缺少的。
我相信有一个简单的解决办法。
我会使用这个(除了最内部的xaml之外的所有内容都取自您链接到的其他SO帖子:
<DataGrid ItemsSource="{Binding}" AutoGenerateColumns="False" >
<DataGrid.Columns>
<DataGridTemplateColumn Header="Custom Column">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Tag="{Binding}" Content="Click Me" Click="Button_ClickHandler"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridtemplateColumn>
</DataGrid.Columns>
</DataGrid>
然后是click处理程序的源:
private void Button_ClickHandler(object sender, EventArgs e)
{
var clickedConfiguredPort = ((FrameworkElement)sender).Tag as ConfiguredPort;
DoStuff(clickedConfiguredPort);
}
查看这篇文章:
http://social.msdn.microsoft.com/forums/en us/wpf/thread/1b694f75 - 7621 - 4 - c88 - 8055 - 6 - c31c601c87f/
当我这样做的时候,我有预定义的列,所以我使用了第二种解决方案,但是如果你想要自动生成列,你可以实现第一种解决方案。