我想將自定義控件的依賴項屬性綁定到其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");}
}
}
----------
這約束力的 「文本」 屬性不工作因爲某些原因。
我想要做的是,在實際的實現中,我希望MyCustom控件的文本屬性更新,當我更新我的基礎ViewModel的文本屬性。
任何有關這方面的幫助,非常感謝。
顯示您正在使用的xaml綁定。 –
它似乎好像這應該工作,把一個斷點在文本 Setter –
@eranotzer:我曾嘗試在文本設置器上放置一個斷點,但它從不觸及視圖中的setter,原因是屬性沒有綁定到底層viewmodels屬性。 – KSingh