Silverlight绑定:数据网格内的用户控件

时间:2010-04-01 21:23:57

标签: silverlight data-binding

我的silverlight应用程序中有一个DataGrid,它有几列。几个基本列绑定没有问题。一列中有一个UserControl,XAML如下:


<data:DataGridTemplateColumn Header="" CanUserSort="True" Width="107">
    <data:DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <local:StaticPageEnlistment EnlistmentName="{Binding SiteName}" Width="400" Height="150"/>
        </DataTemplate>
    </data:DataGridTemplateColumn.CellTemplate>
</data:DataGridTemplateColumn>

所以我有一个公共属性,它是一个名为EnlistmentName的字符串,我绑定到SiteName值。我在我的所有其他列中使用相同的“{Binding SiteName}”没有问题,为什么用户控件不能接受相同的绑定字符串?

2 个答案:

答案 0 :(得分:0)

猜测你还没有将EnlistmentName实现为DependencyProperty。你可以在你的StaticPageEnlistment UserControl中这样做: -

    public string EnlistmentName
    {
        get { return GetValue(EnlistmentNameProperty) as string; }
        set { SetValue(EnlistmentNameProperty, value); }
    }

    public static readonly DependencyProperty EnlistmentNameProperty =
            DependencyProperty.Register(
                    "EnlistmentName",
                    typeof(string),
                    typeof(StaticPageEnlistment ),
                    new PropertyMetadata(null));

答案 1 :(得分:0)

EnlistmentName是DependencyProperty吗?根据{{​​3}},绑定的目标必须是DependencyProperty。