Silverlight多重绑定

时间:2013-01-30 11:28:46

标签: silverlight binding telerik

我对Silverlight中的绑定有疑问。我为Grid视图数据列创建了我的类:

public class NavigateItemID : GridViewDataColumn
{
    public Binding itemID { get; set; }
    public Binding usedType { get; set; }
}

这就是我在xaml中实现数据列的地方:

<ext:NavigateItemID UniqueName="objectName"
                    CellStyle="{Binding Source={StaticResource GridViewCellAlignmentToTop}}"
                    Width="0.3*"
                    Header="{Binding Source={StaticResource locResources}, Path=LabelsWrapper.lblObjectNameW}"
                    TextWrapping="Wrap"
                    IsReadOnly="True"
                    DataMemberBinding="{Binding objectName}"
                    itemID="{Binding itemID}"
                    usedType="{Binding objectType}" />

我想问一下如何才能获得itemID的价值?

1 个答案:

答案 0 :(得分:0)

以这种方式使用,itemID将始终为null。 Binding类是一个contruct,它在DataContext列中的属性与目标类型的依赖属性之间建立关系。

在这种情况下,假设其他所有内容都已正确设置,您必须更改属性的类型以使Binding工作。

例如:

public class NavigateItemID : GridViewDataColumn
{
    public int itemID
    {
        get { return (int)GetValue(itemIDProperty); }
        set { SetValue(itemIDProperty, value); }
    }

    public static readonly DependencyProperty itemIDProperty =
        DependencyProperty.Register("itemID", typeof(int), typeof(NavigateItemID), new PropertyMetadata(0));

    public object usedType
    {
        get { return (object)GetValue(usedTypeProperty); }
        set { SetValue(usedTypeProperty, value); }
    }

    public static readonly DependencyProperty usedTypeProperty =
        DependencyProperty.Register("usedType", typeof(object), typeof(NavigateItemID), new PropertyMetadata(null));
}

Have a read of this for more on Data Binding