0

Silverlightでのバインドについて質問があります。グリッドビューデータ列のクラスを作成しました。

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

4

1 に答える 1

0

このように使用すると、itemIDは常にnullになります。Bindingクラスは、列DataContextのプロパティとターゲットタイプの依存関係プロパティの間の関係を確立する構造です。

この場合、他のすべてが正しく設定されていると仮定すると、バインディングが機能するようにプロパティのタイプを変更する必要があります。

例えば:

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));
}

データバインディングの詳細については、これをお読みください

于 2013-01-30T19:36:26.817 に答える