カスタム コントロールの依存関係プロパティを ViewModel のプロパティにバインドしようとしています。
カスタム コントロールは次のようになります。
public partial class MyCustomControl : Canvas
{
//Dependency Property
public static readonly DependencyProperty TextProperty = DependencyProperty.Register("Text", typeof(string), typeof(MyCustomControl));
private VisualCollection controls;
private TextBox textBox;
public string Text
{
get { return textBox.Text; }
set
{
SetValue(TextProperty, value);
textBox.Text = value;
}
}
//Constructor
public MyCustomControl ()
{
controls = new VisualCollection(this);
InitializeComponent();
textBox = new TextBox();
textBox.ToolTip = "Start typing a value.";
controls.Add(textBox);
//Bind the property
this.SetBinding(TextProperty, new Binding("Text") {Mode = BindingMode.TwoWay, Source = DataContext});
}
}
ビューモデルは次のようになります。
-------
public class MyCustomControlViewModel: ObservableObject
{
private string _text;
public string Text
{
get { return _text; }
set { _text = value; RaisePropertyChanged("Text");}
}
}
----------
「テキスト」プロパティのこのバインドは、何らかの理由で機能していません。
私がやろうとしているのは、実際の実装では、基になる ViewModel の Text プロパティを更新するときに、MyCustom Control の text プロパティを更新することです。
これに関するヘルプは大歓迎です。