2011-12-26 58 views
1

我有一個類患者,每個患者可以有零個或一個地址,每個地址有一個患者。我遵循這個Walkthroug,他們首先使用實體​​框架和代碼。在WPF窗口中拖動Patient數據源將創建一個帶有Patient CollectionViewSource的網格,就像本教程中的Department一樣。我現在的問題是,我無法將Address數據源添加到窗口,就像他們在教程中使用Courses屬性(他們在那裏有一對多的關係)。從病人的地址屬性之類的灰色:wpf與一對一關聯(實體框架)的數據綁定細節

enter image description here

我試圖通過路徑中的XAML添加一個地址屬性:

<Grid DataContext="{StaticResource patientViewSource}"> 
... 
    <DataGrid AutoGenerateColumns="False" EnableRowVirtualization="True" ItemsSource="{Binding}" Name="patientDataGrid" RowDetailsVisibilityMode="VisibleWhenSelected" > 
    <DataGrid.Columns> 
     <DataGridTextColumn x:Name="lastNameColumn" Binding="{Binding Path=LastName}" />     
     <DataGridTextColumn x:Name="addressStreetColumn" Binding="{Binding Path=Address.Street}" /> 
    </DataGrid.Columns> 
    </DataGrid> 
... 
</Grid> 

其結果是,從現有的病人在街上被顯示爲意。但只要我嘗試通過將空白網格行寫入患者姓名和街道名稱來插入新患者和地址,我會收到一個InvalidOperationException異常,指出「雙向綁定需要路徑或XPath」。我猜爲什麼我不能將地址數據源拖到窗口上的原因是,我們沒有在這裏處理標準的1:n關係。

有人可以告訴我如何讓程序自動創建(並堅持)一個新的地址實例連接到正確的患者,只要我輸入街道名稱?

回答

1

我想通了。一個人必須擴大地址,然後單擊詳細信息:

enter image description here

在這之後它拖動。

如果這是默認選擇,它會更容易...