2016-05-25 18 views
0

マルチデータトリガを使用してグリッドの可視性を設定しようとしています。プロパティを可視にする条件は、PropertyA == null & & PropertyB == falseです。私はどのようにPropertyA条件が書かれているのか分かりません。私の試行はここにあります(しかし動作しません)。MultiDataTrigger条件nullチェック

<Grid> 
      <Grid.Style> 
       <Style> 
        <Setter Property="Control.Visibility" Value="Collapsed"/> 
        <Style.Triggers> 
         <MultiDataTrigger> 
          <MultiDataTrigger.Conditions> 
           <Condition Binding="{Binding PropertyA}" Value="{x:Null}"/> 
           <Condition Binding="{Binding PropertyB}" Value="False"/> 
          </MultiDataTrigger.Conditions> 
          <Setter Property="Control.Visibility" Value="Visible" /> 
         </MultiDataTrigger> 
        </Style.Triggers> 
       </Style> 
      </Grid.Style> 

誰かに助言を与えることができますか?

+1

変更' Control'。したがって、 'Control.Visibility'ではなく、' Grid.Visibility'を使うか、StyleタグでTargetTypeを設定します。ありがとうございます。 – XAMlMAX

+0

しかし、これは修正されません –

+0

OK、バインディングエラーはどうなりますか?もう一つの可能​​性は、あなたが 'DataTemplate'または' ControlTemplate'にこれを持っていることです。この 'Grid'の使い方を投稿できますか?すなわち、あなたの 'Window'または' UserControl'に直接ありますか? – XAMlMAX

答えて

0

これは私が使用している、それはボタン用ですスタイルですが、

<Style TargetType="Button" x:Key="btnTakePhoto"> 
    <Style.Triggers> 
     <MultiDataTrigger> 
      <MultiDataTrigger.Conditions> 
       <Condition Binding="{Binding Comment}" Value="{x:Null}"/> 
       <Condition Binding="{Binding ResponseNumber}" Value="{x:Null}"/> 
      </MultiDataTrigger.Conditions> 
      <Setter Property="Visibility" Value="Collapsed"/> 
     </MultiDataTrigger> 
    </Style.Triggers> 
</Style> 

を期待どおりに動作しますが、あなたのグリッドのうちのスタイルを取るために試してみて、あなたのUserControl.Resourcesタグの中に含まれています。
このように使用します:
<Button Style="{StaticResource btnTakePhoto}"/>
xamlが動作しない理由はまったくありません。
EDIT
はまた、私は私の他のUserControlでこのコードを持っている:Grid` `へ

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition/> 
     <RowDefinition Height="Auto"/> 
    </Grid.RowDefinitions> 
    <Grid.Style> 
     <Style> 
      <Setter Property="Grid.Visibility" Value="Collapsed"/> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding ElementName=btnShowHide, Path=IsChecked}" Value="True"> 
        <Setter Property="Grid.Visibility" Value="Visible"/> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </Grid.Style> 
</Grid> 
<ToggleButton MinHeight="150" Width="50" Content=">" Name="btnShowHide">