我想在 DataGridTemplateColumn 内设置用户控件的数据上下文,但它不起作用,代码如下:
<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding RequesterPeoples}">
<DataGrid.Columns>
<DataGridTemplateColumn Header="name" Width="200">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<MvvmCommonControl:CustomDataGridSelectorControl DataContext="{Binding DataContext.RequesterPeoplesDataContext,ElementName=MyWindow}">
<MvvmCommonControl:CustomDataGridSelectorControl.DataGridColumns>
<MvvmCommonControl:DataGridColumnCollection>
<DataGridTextColumn Header="FarsiNmae" Width="100" Binding="{Binding FarsiName, Mode=OneWay}"></DataGridTextColumn>
</MvvmCommonControl:DataGridColumnCollection>
</MvvmCommonControl:CustomDataGridSelectorControl.DataGridColumns>
</MvvmCommonControl:CustomDataGridSelectorControl>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
最佳答案
我只需要使用 RelativeSource
而不是 ElementName
。
我改变了这个:
DataContext="{Binding DataContext.RequesterPeoplesDataContext,ElementName=MyWindow}"
对此:
DataContext="{Binding DataContext.RequesterPeoplesDataContext,RelativeSource={RelativeSource AncestorType=Window}}"
关于wpf - 如何在 DataGrid.DataGridTemplateColumn 内设置 UserControl 的 DataContext?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11132085/