【发布时间】:2013-05-20 15:34:16
【问题描述】:
实际上我面临的问题与标题所说的略有不同。 我试着总结一下下面的问题。
Class PersonnelViewModel
{
public SelectedPersonnelItem PersonnelItemViewModel;
}
Class PersonnelItemViewModel
{
}
视图的数据上下文是A,而数据网格的项目源是SelectedPersonnelItem,它是类中的B类型属性一个。现在我想将网格列绑定到 A 类中的属性defiend。但它不能作为网格的上下文是另一个类 (B)。我该如何解决这个问题?
XAML
<DataGrid Grid.Row="1"
SelectedItem="{Binding SelectedPersonnelItem}"
Name="PersonnelGrid"
ItemsSource="{Binding PersonnelGridData}"
event:DatagridRowDoubleClickHandler.MethodName="EditRecord"
CanUserAddRows="False">
<DataGrid.Columns>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding IsItemChecked, UpdateSourceTrigger=PropertyChanged}"></CheckBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="Name/Company"
Binding="{Binding Name}" />
<DataGridTextColumn Header="Qualification"
Binding="{Binding Qualification}" />
<DataGridTextColumn Header="Arrival"
Binding="{Binding ArrivalDate}" />
<DataGridTextColumn Header="Departure"
Binding="{Binding DepartureDate}" />
</DataGrid.Columns>
</DataGrid>
【问题讨论】:
-
听不懂你
-
你是如何填充你的数据网格的??
-
从您的 XAML 中,Grid 的数据上下文是 A,ItemsSource 是 PersonnelGridData。 SelectedItem 绑定到 SelectedPersonnelItem。你能检查一下你的描述吗
-
网格的数据上下文是 SelectedPersonnelItem,它是 PersonnelItemViewModel 的类型。
-
如果您的 Grid 的 DataContext 是 SelectedPersonnelItem,那么它必须是 DataContext="{Binding SelectedPersonnelItem}" 而不是 SelectedItem。 SelectedItem != DataContext msdn.microsoft.com/en-us/library/…
标签: c# wpf binding header grid