使用用户控件作为DataTemplate和绑定属性

时间:2012-10-16 03:52:20

标签: c# xaml user-controls windows-8

我已经设置了一个用户控件,用于显示标题,图像,播放器集合和时间。这很好用,直到我把它粘贴到GridView中并尝试将这些属性绑定到元素的值。

现在它报告了许多错误,特别是“成员'X'无法识别或无法访问”。这发生在我的绑定中:

<GridView.ItemTemplate>
    <DataTemplate>
        <local:GamePane Map="{Binding Map}" Players="{Binding Players}"/>
    </DataTemplate>
</GridView.ItemTemplate>

我正在使用DependencyProperties尝试让一切工作,如下所示:

    public string Map
    {
        get { return (string)GetValue(MapProperty); }
        set
        {
            SetValue(MapProperty, value);
        }
    }

    public static readonly DependencyProperty MapProperty =
    DependencyProperty.Register(
        "Map",                    
        typeof(string),           
        typeof(GamePane),         
        new PropertyMetadata(     
            "Unknown",            
            ChangeMap)
        );

这使我的代码编译,然而,现在他们只是返回默认值,即使我通过我的绑定指定了不同的东西。我做错了什么?

1 个答案:

答案 0 :(得分:0)

我会回答这个问题,因为我发现了我做错了什么。

在用户控件中,我将其数据上下文设置为自身。这导致了我遇到的问题。删除此数据上下文修复了所有内容。