2009-12-29 75 views
1

這裏是的DataTemplates:WPF DataTemplate中綁定BUG:AmbiguousMatchException

<DataTemplate DataType="{x:Type data:Item}" x:Key="ItemTemplate"> 
    <Border/> 
</DataTemplate> 

<DataTemplate DataType="{x:Type data:StyleItem}" x:Key="StyleItemTemplate"> 
    <Border> 
     <ContentControl Content="{Binding Item}" 
       ContentTemplate="{StaticResource ItemTemplate}"/> 
    </Border> 
</DataTemplate> 

我想一個List<StyleItem>綁定到一個ItemsControl,
設置ItemTemplate="{StaticResource StyleItemTemplate}",但後來我得到一個System.Reflection.AmbiguousMatchException

我讀this後,並且StyleItem和Item類不是泛型類,我不知道如何在我的情況下使用parenthsis解決方案。

ItemStyleItem類生成的EF實體從System.Data.Objects.DataClasses.EntityObject繼承,並實現System.ComponentModel.IDataErrorInfo

回答

3

這聽起來像是你的StyleItem.Item屬性和IDataErrorInfo中定義的屬性索引器之間的碰撞。嘗試將您的StyleItem.Item屬性的名稱更改爲其他名稱。

+1

你是efin權利!!!你是個好人,我在這個問題上掙扎不已! אתההמלך! – Shimmy 2009-12-29 21:23:44

+0

誰會想到:)בבקשה! – 2009-12-29 21:27:17

0

您應該使用x:Key屬性或DataType屬性。

你不能同時使用兩者。所以刪除任何一個讓它工作!我建議刪除DataType屬性,因爲你已經在你的例子中使用了鍵!

+0

那麼我刪除了DataType屬性,仍然不起作用。 關於刪除密鑰,如果它沒有密鑰,我該如何引用它? 你測試過這個,它適合你嗎?對於我來說它並不是:'( – Shimmy 2009-12-29 20:16:33

+0

)你不需要引用DataType當你有一個列表或一個ContentControl(比如Button)時,WPF將檢查是否有任何爲當前DataContext定義的DataTemplates並使用那個 – Arcturus 2009-12-30 08:18:34