我有以下表格:C#WPF XAML綁定到數據表
公司{CompanyID,公司名稱}
新政{CompanyID,值}
而且我有一個列表框:
<ListBox Name="Deals"
Height="100" Width="420" Margin="0,20,0,0" HorizontalAlignment="Left" VerticalAlignment="Top"
Visibility="Visible" IsSynchronizedWithCurrentItem="True"
ItemsSource="{Binding}" SelectionChanged="Deals_SelectionChanged">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding companyRowByBuyFromCompanyFK.CompanyName}" FontWeight="Bold" />
<TextBlock Text=" -> TGS -> " />
<TextBlock Text="{Binding BuyFrom}" FontWeight="Bold" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
正如你所看到的,我想顯示CompanyName而不是外鍵的ID。關係「companyRowByBuyFromCompanyFK」存在,就像在Deals_SelectionChanged中我可以訪問Deals行的companyRowByBuyFromCompanyFK屬性,我也可以訪問該行的CompanyName屬性。
是因爲XAML綁定使用[]索引器而無法工作的原因?而不是DataTable中CompanyRows的屬性?
目前即時得到的值,如
- - > TGS - > 3
- - > TGS - > 4
編輯綁定錯誤更新
System.Windows.Data Error: 39 : BindingExpression path error: 'companyRowByBuyFromCompanyFK' property not found on 'object' ''DataRowView' (HashCode=30295189)'. BindingExpression:Path=companyRowByBuyFromCompanyFK.CompanyName; DataItem='DataRowView' (HashCode=30295189); target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String')
看起來像它沒有將DataRowView項目轉換爲SuppliersRo w
完成此操作的最佳方法是什麼?
製作一個轉換器,使用被引用爲自定義參數的錶轉換外鍵。
爲每個表創建表視圖?由於我有相當多的有外鍵的表,所以這會很長時間。
如果添加一絲你的綁定: {綁定路徑= companyRowByBuyFromCompanyFK.CompanyName,診斷:PresentationTraceSources.TraceLevel =高} 當列表框結合看你的輸出窗口,它說什麼了?這可能會讓我們更深入地瞭解綁定中的失敗。 – 2010-04-14 16:34:08
Omg謝謝你!我總是忘記輸出窗口! Wwhy不會顯示在錯誤窗口!我現在修復它:)謝謝你的提示! – 2010-04-14 22:48:08