2017-09-06 4 views
0

私はこれまでのところ、このコードを持っている:私が何をしようとしています何スイッチを使用して1つのグリッドを非表示にし、他のグリッドを表示するにはどうすればよいですか?

<ViewCell> 
    <Grid> 
     <Label Text="Custom Scores" /> 
     <Switch IsToggled="{Binding ShowPointsSwitch}" /> 
    </Grid> 
</ViewCell> 
<ViewCell Tapped="openPicker"> 
    <Grid IsVisible="{Binding ShowPointsSwitch}"> 
     <Label Text="ABC" /> 
    </Grid> 
    <Grid IsVisible="{Binding ShowPointsSwitch, Converter={StaticResource InverseBoolConverter} }"> 
     <Label Text="DEF" /> 
    </Grid> 
</ViewCell> 

は、スイッチ非表示を有し、異なるグリッドを表示することですが、それは働いていません。それが起こるのは、ラベルが1つしか表示されず、スイッチが移動されたときに何も表示されないということです。

私がこれをどのように修正できるかについて、誰かからアドバイスをいただけますか?参考のため。ここで私が持っているのViewModelです:ViewCellが唯一持っていることになっているので、あなたは、基本的だ

{Binding !ShowPointsSwitch} 

答えて

1

で試すことができ、あなたの代わりに、コンバータ

public class InverseBoolConverter : IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     return !(bool)value; 
    } 
    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     return !(bool)value; 
    } 
} 
+0

あなたがソース= {X:参考_parent}は何を説明することができ、ここでやっています。私はそれに精通していない。また、!ShowPointsSwitchはAlessandroの提案通りに動作しますか? – Alan2

+1

それは残念です - それはコピー貼り間違いでした。私は答えを更新します。そして、私が知る限り、 '!ShowPointsSwitch'は動作しません。たぶんそれは試してみる価値があります。 – Ada

+0

@ Alan2:答えを更新しました。それが役に立てば幸い! – Ada

0

:ここ

bool showPointsSwitch; 

    public bool ShowPointsSwitch 
    { 
     get 
     { 
      return showPointsSwitch; 
     } 
     set 
     { 
      if (value != showPointsSwitch) 
      { 
       showPointsSwitch = value; 
       NotifyPropertyChanged("ShowPointsSwitch"); 
      } 
     } 
    } 

は、コンバータの一人っ子。 使用してみてください:

<ViewCell Tapped="openPicker"> 
    <Grid> 
    <Label Text="ABC" IsVisible="{Binding ShowPointsSwitch}" /> 
    <Label Text="DEF" IsVisible="{Binding ShowPointsSwitch, Converter={StaticResource InverseBoolConverter} }" /> 
    </Grid> 
</ViewCell> 

あるいは、

<ViewCell Tapped="openPicker"> 
    <Grid> 
    <Grid IsVisible="{Binding ShowPointsSwitch}"> 
     <Label Text="ABC" /> 
    </Grid> 
    <Grid IsVisible="{Binding ShowPointsSwitch, Converter={StaticResource InverseBoolConverter}}"> 
     <Label Text="DEF" /> 
    </Grid> 
    </Grid>  
</ViewCell> 
関連する問題