Как я могу связать атрибуты DataGrid с ViewModel? - PullRequest
0 голосов
/ 27 мая 2019

Я пытаюсь связать DataGrid с ViewModel. Видимость DataGrid, Привязки ItemSource и столбцов работают, но если я пытаюсь связать значения как RowDetailsVisibilityMode или текст заголовка столбца, привязка не работает. Я пытался посмотреть, правильно ли переменные связаны с помощью отладки, и указывает ли я на XAML во время отладки, а информация правильно связана.

Что я должен сделать, чтобы связать эту DataGrid?

A:

<DataGrid Grid.Row="1" Grid.Column="0" ItemsSource="{Binding GridItemSource}" SelectedItem="{Binding SelectedGridItem}" RowDetailsVisibilityMode="{Binding RowDetailsVisibility}">

    <DataGrid.Columns>
        <DataGridTextColumn Header="HeaderA" Binding="{Binding ParameterA}" Width="30*"/>
        <DataGridTextColumn Header="HeaderB" Binding="{Binding ParameterB}" Width="30*"/>
        <DataGridTextColumn Header="HeaderC" Binding="{Binding ParameterC}" Width="30*"/>
    </DataGrid.Columns>

</DataGrid>

B

<DataGrid.Columns>
    <DataGridTextColumn Header="{Binding ColumnNameA}" Binding="{Binding ParameterA}" Width="30*"/>
    <DataGridTextColumn Header="{Binding ColumnNameB}" Binding="{Binding ParameterB}" Width="30*"/>
    <DataGridTextColumn Header="{Binding ColumnNameC}" Binding="{Binding ParameterC}" Width="30*"/>
</DataGrid.Columns>

Я бы хотел перейти из ситуации А в ситуацию Б

Edit:

Я попробовал этот подход

<DataGridTextColumn.HeaderTemplate>
    <DataTemplate>
        <TextBlock Text="{Binding Path=HeaderName, Mode=OneWayToSource, UpdateSourceTrigger=PropertyChanged}"/>
    </DataTemplate>
</DataGridTextColumn.HeaderTemplate>

И строка не отображается

Ситуация сейчас такова, что если я напишу

<TextBlock Text="Header name"/>

Я вижу текст, если я его связываю, я вижу пробел.

Поскольку мне также нужно связать видимость деталей строки, я попытался связать свойство RowDetailsVisibilityMode с помощью bool (используя конвектор), и эта привязка тоже не работает.

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