如何使Silverlight Dataform EditTemplate根据复选框状态显示控件?

发布于 2024-11-04 07:16:03 字数 306 浏览 6 评论 0原文

我想使用 XAML 来实现此目的,并尽可能少地使用隐藏代码。我有一个带有自定义编辑模板的 DataForm,如下所示:


[ X ] 复选框 1

[ 控制面板 ]


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

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

谢谢

I want to use XAML for this with as little code-behind as possible. I have a DataForm with a custom Edit Template that looks like this:


[ X ] Checkbox 1

[ Control Panel ]


I want to display a set of controls below the "Checkbox 1" control (where the Control Panel is) IF Checkbox 1 IS checked, and if it's unchecked I want to display a different set of controls.

I am using Silverlight 4 (soon to use SL 5). Is there a Silverlight control holder that lets me "switch" which active panel is visible by setting an "ActivePanel" ID or something?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

将军与妓 2024-11-11 07:16:03

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

If you are familiar with MVVM you can just bind Visibility of your Grids to the same property that CheckBox.IsChecked is Binded to (of course you must use right Converters).

小伙你站住 2024-11-11 07:16:03

只要有 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:如何切换控件可见性

Just have 2 separate panels. For eg.

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

Set the visibility of each in the code-behind event for unchecked and 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;
    }

OR, you may use converters and do everything in xaml. For eg.

See this link: Silverlight 4: how to switch control visibility

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文