WPFを使用して異なるクラスのコントロールに可視性をバインドする

StackOverflow https://stackoverflow.com/questions/1411808

  •  05-07-2019
  •  | 
  •  

質問

メインウィンドウxamlには、2つのユーザーコントロールと2つの RadioButton があります。 RadioButton でユーザーコントロールの Visibility を制御したい。
xamlの抜粋:

    <WpfApp2:ViewTree/>

    <WpfApp2:ViewTab/>

    <RadioButton x:Name="radioButton_Tree" GroupName="View"
                 IsChecked="True"> Tree View </RadioButton>

    <RadioButton x:Name="radioButton_Tab" GroupName="View"
                 IsChecked="False" >Tab View</RadioButton>

ユーザーコントロールには、次のようなものがあります:

Visibility="{Binding IsChecked, 
                     Converter={StaticResource BooleanToVisibilityConverter}, 
                     ElementName=Window1.radioButton_Tree}" >

実行時にこのエラーが表示されます:
参照 'ElementName = Window1.radioButton_Tab'を持つバインディングのソースが見つかりません

見落としているものは何ですか?

役に立ちましたか?

解決

Window1という名前は、ユーザーコントロールのコンテキストではありません。

以下のコードを使用できますか?

<WpfApp2:ViewTree Visibility="{Binding IsChecked, 
                  Converter={StaticResource BooleanToVisibilityConverter}, 
                  ElementName=radioButton_Tree}" />

<WpfApp2:ViewTab Visibility="{Binding IsChecked, 
                 Converter={StaticResource BooleanToVisibilityConverter}, 
                 ElementName=radioButton_Tab}" />

<RadioButton x:Name="radioButton_Tree" GroupName="View"
             IsChecked="True"> Tree View </RadioButton>

<RadioButton x:Name="radioButton_Tab" GroupName="View"
             IsChecked="False" >Tab View</RadioButton>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top