2013-12-18 128 views
0

我已經爲Combobox提問類似的問題,並得到了一個不錯的答案。如果可能的話,現在我要將DataGridTextColumn綁定到Foreign Key。否則,我可以將DataGridTemplateColumn綁定到Foreign Key將DataGridTextColumn或DataGridTemplateColumn綁定到外鍵

爲了證明我的問題,讓我們來看看一個例子:

假設我有兩個表:

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> 

但我不知道正確的綁定。

希望有人幫助。

回答

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

+0

謝謝,這是一個非常簡單的解決方案。 – Khushi

+0

對於將來有同樣問題的用戶,請將'患者'和'SelectedPatients'更改爲'Customers'和'SelectedCustomer'。 – Khushi

相關問題