C# 在silverlight中绑定值

C# 在silverlight中绑定值,c#,wpf,silverlight,binding,silverlight-4.0,C#,Wpf,Silverlight,Binding,Silverlight 4.0,我在xaml文件中有3个复选框。名称:坐、站、睡。 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}" RenderTran

我在xaml文件中有3个复选框。名称:坐、站、睡。 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值为one表示我需要选中Sit复选框

如果Extype值为two表示我需要选中支架复选框

如果Extype值为three表示我需要选中这两个复选框

我如何才能做到这一点?

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"/>
XAML:


可以将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示例:

(请记住将ValueConverter添加为资源。)


然后将您的业务逻辑代码放入ValueConverter中,或者更好地调用业务层中的函数。

您可以使用带有参数的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示例:

(请记住将ValueConverter添加为资源。)


然后将您的业务逻辑代码放入ValueConverter中,或者更好,在您的业务层中调用一个函数。

只需要一个转换器,并将参数传递给转换器以识别复选框。请选中此复选框,写入10个转换器。不要使用复选框,使用单选按钮。写入100个转换器。为了安全起见。但是按照前面的建议…然后你写一个转换器。只需要一个转换器,并将参数传递给转换器以识别复选框。请选中此复选框写10个转换器。不要使用复选框,使用单选按钮。写100个转换器。为了安全起见。但是遵循前面的建议……然后编写一个转换器。这里缺少一些代码。哪里是
IsStand
IsSleep
?更不用说,这将不起作用,因为这些属性是只读的。你需要添加设置器。@MikeEason如果你读了这个问题,它只提到在坐姿和站立时设置IsChecked。它还只提到了根据ExtType值设置IsChecked,而不是从UI设置IsChecked。哪里是
IsStand
IsSleep
?更不用说,这将不起作用,因为这些属性是只读的。你需要添加设置器。@MikeEason如果你读了这个问题,它只提到在坐姿和站立时设置IsChecked。它还只提到根据ExtType值而不是从UI设置IsChecked。