Как реализовать таблицу, которая появляется / разворачивается при нажатии кнопки «развернуть»? - PullRequest
0 голосов
/ 23 марта 2011

Лучше ли строить 2 разные страницы? Так что при нажатии кнопки она ведет на другую страницу с таблицей? Или мы можем скрыть таблицу, пока не нажата кнопка «развернуть»? Лучше ли представлять таблицу в виде списка? Спасибо.

Ответы [ 2 ]

2 голосов
/ 23 марта 2011

Я думаю, что конвертер - это путь, как сказал ТерренсДжексон!

В DataGrid ваша привязка должна выглядеть следующим образом:

<CheckBox Content="Expand" Height="72" Name=MyExpandCheckbox IsChecked="False" />
<DataGrid Visibility="{Binding ElementName=MyExpandCheckbox, Path=IsChecked, Converter={StaticResource BoolToVisibleConverter}}"/>

Вы должны установить имя вашей кнопки / флажка / ... для ElementName в привязке для свойства видимости.

Вот пример BoolToVisibilityConverter:

public class BoolToVisibilityConverter : IValueConverter
{
    #region IValueConverter member

    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return (Boolean)value ? Visibility.Visible : Visibility.Collapsed;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }

    #endregion
}
1 голос
/ 23 марта 2011

Я бы не стал делать это с двумя отдельными страницами.Вы можете использовать простой расширитель и стилизовать его под свои цели.Вот видео, как использовать расширитель: http://silverlight.net/learn/videos/all/silverlight-toolkit-creating-a-toolkit-expander/, и вот простое руководство http://www.c -sharpcorner.com / Resources / 768 / .

Вы также можете использоватьпростая кнопка переключения и привязка видимости таблицы (DataGrid или ListBox, что вы хотите) с помощью преобразователя в проверенное состояние кнопки переключения.Примерно так:

<ToggleButton x:Name="myToggleButton" />
<DataGrid Visibility="{Binding ElementName, Path=IsChecked, Converter={StaticResource BoolToVisibleConverter}}"/>

BoolToVisibleConverter - это класс, который реализует IValueConverter (http://msdn.microsoft.com/en-us/library/system.windows.data.ivalueconverter.aspx).

Я не знаю вашей точной цели, но я полагаю, что подход с экспандером вам подходит.

Надеюсь, это поможет.

BR,

TJ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...