10

2 つの依存関係プロパティを持つユーザー コントロールを作成しました。これらの依存関係プロパティを mainViewModel のプロパティにバインドして、ユーザー コントロールで何かが変更されるたびに親のプロパティが更新されるようにします。

普通にバインドしてみましたがだめでした。ユーザー コントロールの DP を親のプロパティにバインドするにはどうすればよいですか。

私はこれを試しました: UC:

<TextBox Name="TextBox" Text="{Binding ElementName=UCName, Path=DP1, Mode=TwoWay}"/>

メインウィンドウ:

<UCName:UCName Width="330" CredentialName="{Binding Path=DP1, Mode=TwoWay}"></UCName:UCName>

ありがとう

4

2 に答える 2

22

親のプロパティにバインドするには、Binding で RelativeSource を使用する必要があります。このような:

<TextBox Name="TextBox" Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UCName:UCName}}, Path=DP1, Mode=TwoWay}"/>

詳細: RelativeSource マークアップ拡張機能

注: 名前空間 UCName の定義を忘れないでください。

于 2012-07-18T21:34:22.297 に答える
6

このようなもの:

<MainWindow DataContext="mainViewModel">

 <local:TestControl ucDependProp="{Binding viewModelProp}/>

</MainWindow>


className: TestControl.xaml
<UserControl Name="thisControl">
<TextBox Text="{Binding ElementName=thisControl, Path=ucDependProp}/>
</UserControl>

ユーザー コントロールは、親ビュー モデルを認識するべきではありません。

于 2012-07-18T22:00:41.103 に答える