2016-04-04 16 views
0

22個のCheckBoxが含まれているListViewがあります。私はそれらのすべてをチェックする必要があり、チェックボックスがチェックされている場合、それは私がthouse送る1またはCheckチェックボックスがListViewでチェックされていますUWP

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

0がどのように自動的にそれを作るために、ここでそれ以外の場合は、1 0

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

を返し、?私が知っているのは、それを手動でチェックする方法(すべてのコントロールに対してelse)がありますが、それは良い解決策ではありません。

答えて

0

ではなく、1,0をtrueまたはfalseで返すことができます。そうであれば、プロパティをCheckBoxのIsCheckedプロパティにバインドできます。 あなたはtrueまたはfalseを返すカントの場合、あなたは

<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> 

コンバータ

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(); } 
    } 

trueまたはfalseを返すカント場合、値コンバータ

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

を使用する必要があります

関連する問題