【问题标题】:WPF DataTemplate Binding BUG: AmbiguousMatchExceptionWPF DataTemplate 绑定 BUG:AmbiguousMatchException
【发布时间】:2009-12-29 07:20:36
【问题描述】:

这里是数据模板:

<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&lt;StyleItem&gt; 绑定到 ItemsControl,
设置ItemTemplate="{StaticResource StyleItemTemplate}",然后我得到一个System.Reflection.AmbiguousMatchException

我阅读了this 的帖子,尽管 StyleItem 和 Item 类不是通用类,但无论如何;我不知道如何在我的情况下使用括号解决方案。

ItemStyleItem 类是从 System.Data.Objects.DataClasses.EntityObject 继承并实现 System.ComponentModel.IDataErrorInfo 的生成 EF 实体。

【问题讨论】:

    标签: wpf templates exception styles


    【解决方案1】:

    这听起来像是您的StyleItem.Item 属性和IDataErrorInfo 中定义的属性索引器之间的冲突。尝试将您的 StyleItem.Item 属性名称更改为其他名称。

    【讨论】:

    • 你说得对!!!你是个好人,我在这个问题上挣扎了很多! אתההמלך!
    • 谁会想到 :) בבקשה!
    【解决方案2】:

    您应该使用 x:Key 属性或 DataType 属性。

    您不能同时使用两者。因此,删除任何一个以使其正常工作!我建议删除 DataType 属性,因为您已经使用了示例中的键!

    【讨论】:

    • 好吧,我删除了 DataType 属性,但仍然无法正常工作。关于删除密钥,如果它没有密钥,我如何引用它?您是否对此进行了测试,并且对您有用!?因为对我来说它没有:'(
    • 你不需要参考DataType。当您有一个列表或一个 ContentControl(如 Button)时,WPF 将检查是否有为当前 DataContext 定义的任何 DataTemplates 并使用那个。
    猜你喜欢
    • 2013-05-29
    • 2015-01-29
    • 2011-07-05
    • 1970-01-01
    • 1970-01-01
    • 2015-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多