-1

MyUserControl に 2 つの DependencyProperties TBLocation と TBBroadcastLocation があります。TBLocation については、MyTextBox という別の要素から情報を取得します。TBLocation が設定されたら、TBBroadcastLocation に TBLocation の Point 情報を設定します。そして今、TBBroadcastLocation データを MyViewModel で利用できるようにして、TBLocation のデータを間接的に利用できるようにしたいと考えています。

どうすればそれを行うことができますか、またはより良いアプローチがありますか?

4

1 に答える 1

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のがビュー モデル クラスのインスタンスに設定されていることを確認します。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 に答える