0

既存のコントロール (私の場合は ComboBox) を拡張して、ビュー モデルのプロパティにバインドできる新しいプロパティを含めるにはどうすればよいですか??

次のように、コントロールのクラスに依存関係プロパティがあります。

public class MyComboBox : ComboBox
{
    public static readonly DependencyProperty MyTextProperty =
        DependencyProperty.Register("MyText", typeof(string), typeof(MyComboBox));

    public string MyText
    {
        get
        {
            return GetValue(MyComboBox.MyTextProperty).ToString();
        }

        set
        {
            SetValue(MyComboBox.MyTextProperty, value);             
        }
    }

そして、次のように XAML から宣言的にバインドします。

<MyComboBox MyText="{Binding MyTextOnViewModel,
    UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"/>  

バインディングが機能しません。なぜですか??

ありがとう。

4

1 に答える 1

2

プロパティが MyTextProperty として宣言されている間、ゲッターとセッターは TestTextProperty を参照します。

ゲッターも .ToString() を呼び出す代わりにキャストする必要があります

return (string)GetValue(MyTextProperty);

詳細な手順については、このページを参照してください。

于 2009-07-22T04:06:11.417 に答える