我是WPF的新手,所以可能会有一个简单的答案,但这对我来说并不明显。
网格显然代表了我的Configured Port对象的集合。我想存储Configured Port对象(每行的Binding),以便在单击网格单元格时将其传递给MVVM链中的下一个UserControl。
我确实找到了this SO question,但评论的部分正是我所缺少的。
在此先感谢,我确信有一个简单的解决方案。
答案 0 :(得分:2)
我会用这个(除了内部最多的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>
然后是点击处理程序的来源:
private void Button_ClickHandler(object sender, EventArgs e)
{
var clickedConfiguredPort = ((FrameworkElement)sender).Tag as ConfiguredPort;
DoStuff(clickedConfiguredPort);
}
答案 1 :(得分:1)
查看这篇文章:
http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/1b694f75-7621-4c88-8055-6c31c601c87f/
当我这样做时,我有预定义的列,所以我使用了第二个解决方案,但是如果你想自动生成列,你可以实现第一个解决方案。