DependencyProperty到ViewModel

时间:2013-09-17 09:24:32

标签: wpf wpf-4.0

我有两个DependencyProperties TBLocation& MyUserControl中的TBBroadcastLocation。 对于TBLocation,我从另一个名为MyTextBox的元素中获取信息。 当TBLocation设置时,我使用TBLocation的Point信息设置TBBroadcastLocation。 现在我想将TBBroadcastLocation数据提供给MyViewModel,以便它可以间接获得TBLocation的数据。

我怎么能这样做或者我们有更好的方法?

1 个答案:

答案 0 :(得分:1)

在我看来好像在问'如何将UserControl的属性绑定到视图模型的属性'。你真的应该在在这里提出这些问题之前阅读数据绑定的基础知识。如需将来参考,请阅读MSDN上的Data Binding Overview页面。

鉴于尚未提供足够的信息,我将假设您的媒体资源属于string。在这种情况下,您的视图模型需要类型为string的标准属性才能绑定到您的DependencyProperty ...此属性必须实现INotifyPropertyChanged接口:

private string viewModelProperty = string.Empty;

public string ViewModelProperty
{
    get { return viewModelProperty; }
    set { viewModelProperty = value; NotifyPropertyChanged("ViewModelProperty"); } }
}

确保将DataContextWindow的{​​{1}}设置为视图模型类的实例:

UserControl构造函数中:

MainWindow

或者在XAML中:

DataContext = new ViewModelClass();

然后您只需使用<DataTemplate DataType="{x:Type ViewModels:ViewModelClass}"> <Views:yourView /> </DataTemplate> 绑定绑定:

Two Way