如何将DataGrid属性与ViewModel绑定?

时间:2019-05-27 13:07:28

标签: wpf xaml binding datagrid

我正在尝试将DataGrid与ViewModel绑定。 DataGrid可见性 ItemSource和列绑定有效,但是如果我尝试将值绑定为RowDetailsVisibilityMode或列标题的文本,则绑定不起作用。 我试图查看变量是否通过调试正确绑定,以及在调试时是否指向te 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>

我想从情况A转到情况B

编辑:

我尝试过这种方法

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

字符串不显示

现在的情况是,如果我写

<TextBlock Text="Header name"/>

我看到了文本,如果我将其绑定,我会看到一个空格。

由于我还必须绑定行详细信息的可见性,因此我尝试使用bool(使用对流器)将Property RowDetailsVisibilityMode绑定到绑定,并且这种绑定也不起作用。

0 个答案:

没有答案