我希望使用XAML尽可能少的代码隐藏。我有一个带有自定义编辑模板的DataForm,如下所示:
[X]复选框1
[控制面板]
我想在“Checkbox 1”控件下面显示一组控件(控制面板所在的位置)IF复选框1被选中,如果未选中,我想显示一组不同的控件。
我正在使用Silverlight 4(很快就会使用SL 5)。是否有一个Silverlight控件支架,通过设置“ActivePanel”ID或其他东西,我可以“切换”哪个活动面板可见?
由于
答案 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中执行所有操作。例如。
答案 1 :(得分:0)
如果你熟悉MVVM,你可以将你的网格的可见性绑定到CheckBox.IsChecked
被绑定到的同一属性(当然你必须使用正确的转换器)。