-1

我在 MyUserControl 中有两个 DependencyProperties TBLocation 和 TBBroadcastLocation。对于 TBLocation,我从另一个名为 MyTextBox 的元素中获取信息。设置 TBLocation 后,我使用 TBLocation 的点信息设置 TBBroadcastLocation。现在我想让 TBBroadcastLocation 数据对 MyViewModel 可用,以便它可以间接使用 TBLocation 的数据。

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

4

1 回答 1

1

在我看来,好像您在问“如何将 a 的属性绑定UserControl到视图模型的属性”。在问这些问题之前,您真的应该阅读数据绑定的基础知识。为了将来参考,请阅读 MSDN 上的数据绑定概述页面。

鉴于您仍然没有提供足够的信息,我将假设您的属性是 type string。在这种情况下,您的视图模型将需要一个标准类型的属性string来绑定到您的DependencyProperty……这个属性必须实现INotifyPropertyChanged接口:

private string viewModelProperty = string.Empty;

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

确保其中DataContext包含WindowUserControl的 的 设置为视图模型类的实例:

MainWindow构造函数中:

DataContext = new ViewModelClass();

或在 XAML 中:

<DataTemplate DataType="{x:Type ViewModels:ViewModelClass}">
    <Views:yourView />
</DataTemplate>

然后,您只需使用绑定进行Two Way绑定:

<YourNamespace:MyUserControl 
    TBBroadcastLocation="{Binding ViewModelProperty, Mode=TwoWay}" />
于 2013-09-17T10:26:37.923 回答