2016-05-20 11 views
1

値がnullの場合にスタックパネルの可視性を設定しようとしていますが、DataTriggerBehaviorが可視性値を変更していない場合、値が動作しているもの以外の値に変更された場合、DataTriggerBehaviorがnull値で動作しない

<Interactivity:Interaction.Behaviors> 
    <Core:DataTriggerBehavior Binding="{Binding Name}" 
           Value="{x:Null}"> 
    <Core:ChangePropertyAction TargetObject="{Binding ElementName=spName}" 
           PropertyName="Visibility" 
           Value="Collapsed" /> 
        </Core:DataTriggerBehavior> 
</Interactivity:Interaction.Behaviors> 
+0

あなたのアプリで、それは多分異なるコンバータクラスを作成した名前空間を確認しましです「ヌル」ですか? 'Value =" "' – Bolu

+0

はい、私はそれを試しましたが、まだ視認性は変化していないことを確認しようとしましたか? –

答えて

1

1つのオプションはNameStringある前提シンプルなコンバータを使用することで、値が他のnullであるString

public class NullToEmptyStringConverter : IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, string language) 
    { 
     if (value == null)    
      return "";    
     else 
      return value.ToString(); 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, string language) 
    { 
     throw new NotImplementedException(); 
    } 
} 

Aとして値を返す場合は、空の文字列を返します。そのためにNDあなたのXAMLはNullToEmptyStringConverter NBをローカル参照する値ならば、私は

<Page.Resources> 
    <local:NullToEmptyStringConverter x:Key="NullToEmptyStringConverter"/> 
</Page.Resources> 

とあなたのDataTrigger

<Interactivity:Interaction.Behaviors> 
<Core:DataTriggerBehavior Binding="{Binding Name, Converter={StaticResource NullToEmptyStringConverter}}" 
          Value=""> 
    <Core:ChangePropertyAction TargetObject="{Binding ElementName=spName}" 
          PropertyName="Visibility" 
          Value="Collapsed" /> 
</Core:DataTriggerBehavior> 

+0

はい、コンバータは今のところ唯一のオプションですが、DataTriggerBehaviorがnullで動作しない理由を知りたいと思っています。 –

+0

は、この[応答](http://stackoverflow.com/questions/23728327/datatriggerbehavior-doesnt-work-with-enum)を見てトリガー自体の障害のように思えます – SWilko

関連する問題