Как заставить Silverlight Dataform EditTemplate показывать элементы управления на основе состояния флажка? - PullRequest
0 голосов
/ 29 апреля 2011

Я хочу использовать для этого XAML с как можно меньшим количеством кода. У меня есть DataForm с пользовательским шаблоном редактирования, который выглядит следующим образом:


[X] Флажок 1

[Панель управления]


Я хочу отобразить набор элементов управления под элементом управления «Флажок 1» (там, где находится панель управления), если флажок 1 установлен, и если он не отмечен, я хочу отобразить другой набор элементов управления.

Я использую Silverlight 4 (скоро использовать SL 5). Есть ли держатель элемента управления Silverlight, который позволяет мне «переключать» видимую активную панель, устанавливая идентификатор «ActivePanel» или что-то в этом роде?

Спасибо

Ответы [ 2 ]

0 голосов
/ 29 апреля 2011

Если вы знакомы с MVVM, вы можете просто привязать видимость ваших сеток к тому же свойству, к которому привязано CheckBox.IsChecked (конечно, вы должны использовать правильные конвертеры).

0 голосов
/ 29 апреля 2011

Просто есть 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: как переключить видимость управления

...