我在xaml文件中有3个Checkbox。名称坐着,站着,睡觉。 Extype具有以下值1,2,3
CheckBox Content="Sit" Margin="127,89,212,136" IsChecked="{Binding Extype}" RenderTransformOrigin="1.817,-1.029"/>
CheckBox Content="Stand" Margin="127,89,212,136" IsChecked="{Binding Extype}" RenderTransformOrigin="1.817,-1.029"/>
CheckBox Content="Sleep" Margin="127,89,212,136" IsChecked="{Binding Extype}" RenderTransformOrigin="1.817,-1.029"/>
如果Extype值一个表示我需要选中Sit复选框。
如果Extype值为两个,则表示我需要选中“立场”复选框。
如果Extype值为三,则表示我需要同时选中这两个复选框。
我该怎么做?
答案 0 :(得分:0)
XAML:
<CheckBox Content="Sit" IsChecked="{Binding IsSit, Mode=OneWay}" IsEnabled="False"/>
<CheckBox Content="Stand" IsChecked="{Binding IsStand, Mode=OneWay}" IsEnabled="False"/>
<CheckBox Content="Sleep" IsChecked="{Binding IsSleep, Mode=OneWay}" IsEnabled="False"/>
视图模型:
public bool IsSit
{
get
{
return ExtType == 1 || ExtType == 3;
}
}
public bool IsStand
{
get
{
return ExtType == 2 || ExtType == 3;
}
}
private int _extType;
public int ExtType
{
get
{
return _extType;
}
set
{
_extType = value;
RaisePropertyChanged("IsSit");
RaisePropertyChanged("IsStand");
}
}
答案 1 :(得分:0)
您可以将ValueConverter与参数一起使用。在每个复选框中使用相同的ValueConverter,但更改参数值。
<CheckBox Content="Sit" IsChecked="{Binding Extype, Converter={StaticResource YourConverter}, ConverterParameter=Sit}" />
<CheckBox Content="Standup" IsChecked="{Binding Extype, Converter={StaticResource YourConverter}, ConverterParameter=Standup}" />
这是一个带参数的ValueConverter示例: http://wpftutorial.net/ValueConverters.html
(请记住将ValueConverter添加为资源。)
然后将您的业务逻辑代码放在ValueConverter中,甚至更好,调用业务层中的函数。