我有两个DependencyProperties TBLocation& MyUserControl中的TBBroadcastLocation。 对于TBLocation,我从另一个名为MyTextBox的元素中获取信息。 当TBLocation设置时,我使用TBLocation的Point信息设置TBBroadcastLocation。 现在我想将TBBroadcastLocation数据提供给MyViewModel,以便它可以间接获得TBLocation的数据。
我怎么能这样做或者我们有更好的方法?
答案 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"); } }
}
确保将DataContext
中Window
的{{1}}设置为视图模型类的实例:
在UserControl
构造函数中:
MainWindow
或者在XAML中:
DataContext = new ViewModelClass();
然后您只需使用<DataTemplate DataType="{x:Type ViewModels:ViewModelClass}">
<Views:yourView />
</DataTemplate>
绑定绑定:
Two Way