如何将整个Binding对象存储在DataGrid的一行中

本文关键字:一行 DataGrid Binding 存储 对象 | 更新日期: 2023-09-27 18:02:45

我是WPF的新手,所以可能有一个简单的答案,但对我来说不是很明显。

网格显然代表了我的配置端口对象的集合。我想存储配置端口对象(这是每一行的绑定),以便在单击网格单元格时将其传递给MVVM链中的下一个UserControl。

我确实发现了这个问题,但是评论部分正是我所缺少的。

我相信有一个简单的解决办法。

如何将整个Binding对象存储在DataGrid的一行中

我会使用这个(除了最内部的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/

当我这样做的时候,我有预定义的列,所以我使用了第二种解决方案,但是如果你想要自动生成列,你可以实现第一种解决方案。