如何使Silverlight Dataform EditTemplate显示基于复选框状态的控件?

时间:2011-04-29 17:39:01

标签: c# .net silverlight xaml ria

我希望使用XAML尽可能少的代码隐藏。我有一个带有自定义编辑模板的DataForm,如下所示:


[X]复选框1

[控制面板]


我想在“Checkbox 1”控件下面显示一组控件(控制面板所在的位置)IF复选框1被选中,如果未选中,我想显示一组不同的控件。

我正在使用Silverlight 4(很快就会使用SL 5)。是否有一个Silverlight控件支架,通过设置“ActivePanel”ID或其他东西,我可以“切换”哪个活动面板可见?

由于

2 个答案:

答案 0 :(得分:0)

只需要2个独立的面板。例如。

<Grid x:Name="OnGrid" Visibility="Collapsed" />
<Grid x:Name="OffGrid" Visibility="Collapsed" />
<CheckBox Content="CheckBox" Unchecked="CheckBox_Unchecked" Checked="CheckBox_Checked"/>

设置代码隐藏事件中每个事件的可见性,以便取消选中并选中。

    private void CheckBox_Unchecked(object sender, System.Windows.RoutedEventArgs e)
    {
        OffGrid.Visibility = Visibility.Visible;
        OnGrid.Visibility = Visibility.Collapsed;
    }

    private void CheckBox_Checked(object sender, System.Windows.RoutedEventArgs e)
    {
        OffGrid.Visibility = Visibility.Collapsed;
        OnGrid.Visibility = Visibility.Visible;
    }

或者,您可以使用转换器并在xaml中执行所有操作。例如。

请参阅此链接:Silverlight 4: how to switch control visibility

答案 1 :(得分:0)

如果你熟悉MVVM,你可以将你的网格的可见性绑定到CheckBox.IsChecked被绑定到的同一属性(当然你必须使用正确的转换器)。