WPF DataGrid RowDetails Привязка видимости к свойству (только с XAML) - PullRequest
9 голосов
/ 21 июля 2011

У меня есть DataGrid, отображающий кучу объектов. Эти объекты имеют свойство IsDetailsExpanded, и я хочу связать свойство DataRows DetailsVisibility с этим свойством.

Мой первый подход работает, но требует некоторого кода (от которого я хотел бы избавиться)

Я обработал событие LoadingRow

void LoadingRowHandler(object sender, DataGridRowEventArgs e)
{
    Binding b = new Binding()
    {
         Source = e.Row.DataContext,
         Path = new PropertyPath("IsExpanded"),
         Converter = (IValueConverter)Resources["BoolToVisi"],
         Mode = BindingMode.TwoWay
    };
    e.Row.SetBinding(DataGridRow.DetailsVisibilityProperty, b);
}

Я думаю, что должен быть способ достичь чего-то похожего в XAML, но я, к сожалению, не имею ни малейшего понятия. Есть идеи? предложения?

1 Ответ

17 голосов
/ 21 июля 2011

Вы можете использовать Стиль для типа DataGridRow, например:

<DataGrid Name="dataGrid1" Margin="12,12,0,0">
    <DataGrid.RowStyle>
        <Style TargetType="DataGridRow">
            <Setter Property="DetailsVisibility" Value="{Binding IsExpanded, Converter={StaticResource BoolToVisi}}" />
        </Style>
    </DataGrid.RowStyle>
</DataGrid>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...