在复选框silverlight中绑定值

时间:2015-07-24 12:28:32

标签: c# wpf silverlight binding silverlight-4.0

我在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值为,则表示我需要同时选中这两个复选框。

我该怎么做?

2 个答案:

答案 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中,甚至更好,调用业务层中的函数。