2016-04-04 9 views
0

Ich habe eine ListView, die 22 CheckBoxen enthält. Ich sollte sie alle überprüfen, und wenn checkBox geprüft kehrt 1, sonst 0.Check-Checkboxen sind in ListView UWP markiert

    < ListView x: Name = "CheckBoxList" > 
        < CheckBox x: Name = "nr1" /> 
        ...  
        < CheckBox x: Name = "nr22" /> 
        </ListView> 

Und hier bin thouse 1 oder 0

  dynamic sendMessage = MyApi.Api.sendMessage(//for example 1, 0, 1, 1, 0, 0 etc.//); 

So senden automatisch machen? Weil alles, was ich weiß, ist, wie man es manuell überprüft (wenn - sonst für jede Kontrolle), aber es ist keine gute Lösung.

Antwort

0

statt 1,0 können Sie True oder False zurückgeben. Wenn dies der Fall ist, können Sie die Eigenschaft an die IsChecked-Eigenschaft von CheckBox binden. Wenn Sie kann nicht wahr oder falsch zurückgeben haben Sie Werteumwandler

<ListView ItemsSource="{Binding values}"> 
     <ListView.ItemTemplate> 
      <DataTemplate> 
       <StackPanel> 
        <CheckBox IsChecked="{Binding value}"/> 
       </StackPanel> 
      </DataTemplate> 
     </ListView.ItemTemplate> 
    </ListView> 

verwenden Wenn Sie wahr oder falsch zurückgeben kann nicht

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

<ListView ItemsSource="{Binding values}"> 
     <ListView.ItemTemplate> 
      <DataTemplate> 
       <StackPanel> 
        <CheckBox IsChecked="{Binding value,Converter={StaticResource BooleanToIntegerConverter}}"/> 
       </StackPanel> 
      </DataTemplate> 
     </ListView.ItemTemplate> 
    </ListView> 

Converter

public class BooleanToIntegerConverter : IValueConverter 
    { 
     public object Convert(object value, Type targetType, object parameter, string language) 
     { 
      if ((bool)value) 
       return 1; 
      else 
       return 0; 
     } 
     public object ConvertBack(object value, Type targetType, object parameter, string language) 
     { throw new NotImplementedException(); } 
    } 
Verwandte Themen