我有一个ListView,它包含22个CheckBoxes。我应该检查所有这些,如果选中checkBox则返回1,否则返回0。
< ListView x: Name = "CheckBoxList" >
< CheckBox x: Name = "nr1" />
...
< CheckBox x: Name = "nr22" />
</ListView>
在这里我发送1或0
dynamic sendMessage = MyApi.Api.sendMessage( //for example 1, 0, 1, 1, 0, 0 etc.//);
如何自动制作?因为我所知道的是如何手动检查它(如果 - 除了每个控件),但这不是一个好的解决方案。
答案 0 :(得分:0)
而不是1,0可以返回true或false。如果是这样,您可以将属性绑定到CheckBox的IsChecked属性。 如果你不能返回true或false,你必须使用值转换器
<ListView ItemsSource="{Binding values}">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel>
<CheckBox IsChecked="{Binding value}"/>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
如果你不能返回真或假
<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(); }
}