我已经为Combobox
提出了类似的问题并得到了一个很好的答案。现在我蚂蚁将DataGridTextColumn
绑定到Foreign Key
,如果可能的话。否则,我可以将DataGridTemplateColumn
绑定到Foreign Key
。
为了演示我的问题,我们来看一个例子:
假设我有两个表:
Cusstomer
CustomerID
Name
Gender //ForeignKey
性别
GenderID
Value
我正在使用entity framework
自动生成我的Models
。
现在我尝试按如下方式绑定DataGridTemplateColumn:
<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding DataContext.Customers, RelativeSource={RelativeSource AncestorType={x:Type Window}}}"
SelectedItem="{Binding SelectedPatient}" RowDetailsVisibilityMode="VisibleWhenSelected"
IsReadOnly="True" SelectionMode="Single" SelectionUnit="FullRow" >
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Name}" Header="Patient Name" Width="25*" />
<!--<DataGridTextColumn Binding="{Binding Gender}" Header="Gender" Width="10*" />-->
<DataGridTemplateColumn Header="Gender" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ItemsControl ItemsSource="{Binding ???}" >
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding ???}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid>
但我不知道正确的绑定。
希望有人帮忙。
答案 0 :(得分:1)
{Binding Gender.Value}
适用于您的模特
public class YourViewModel
{
public List<Customer> Customers { get; set; }
public Customer SelectedCustomer { get; set; }
}
public class Customer
{
public int CustomerID { get; set; }
public string Name { get; set; }
public Gender Gender { get; set; }
}
public class Gender
{
public int GenderID { get; set; }
public string Value { get; set; }
}
PS。 btw规范化表格的性别太多了。您可以考虑使用check possible column value