1

DataGridWPFアプリケーションでを使用してデータを表示しています。アプリケーションをロードすると、グリッドの列がおかしくなり、左側の[すべて選択]ボタンが消えて、列の仕切りが列の位置と正確に一致しない場合があります。ユーザーが列のサイズを変更しようとした場合にのみ、グリッドのレイアウトはOKになります。

私のDataGridの定義は次のとおりです。 <DataGrid Name="myList" AutoGenerateColumns="False" ItemsSource ="{Binding SortedView}" VirtualizingStackPanel.IsVirtualizing="False" ColumnWidth="Auto">

説明のために問題のスクリーンショットを次に示します。

DataGridのレイアウトが悪い

DataGridの完全なXAMLコードは次のとおりです。

<DataGrid Name="myList" AutoGenerateColumns="False" ItemsSource ="{Binding SortedView}" VirtualizingStackPanel.IsVirtualizing="False" ColumnWidth="Auto">
        <Interactivity:Interaction.Triggers>
            <Interactivity:EventTrigger EventName="Sorting" >
                <WPFCommon:InvokeDelegateCommandAction 
                            Command="{Binding SortCommand}"
                            CommandParameter="{Binding RelativeSource={RelativeSource Self}, Path=InvokeParameter}" />
            </Interactivity:EventTrigger>
        </Interactivity:Interaction.Triggers>
        <DataGrid.RowStyle>
            <Style TargetType="DataGridRow">
                <Setter Property="HorizontalContentAlignment" Value="Stretch" />
                <Setter Property="IsSelected" Value="{Binding Mode=TwoWay, Path=IsSelected}"/>
            </Style>
        </DataGrid.RowStyle>
        <DataGrid.Columns>
            <DataGridTextColumn Header="{x:Static p:Resources.Sensor}" Binding="{Binding SensorName, Mode=OneWay}" Width="Auto" />
            <DataGridTextColumn Header="{x:Static p:Resources.Status}" CanUserSort="True" Binding="{Binding Classification, Mode=OneWay}" Width="Auto" />
            <DataGridTextColumn Header="{x:Static p:Resources.Created}" Binding="{Binding CreatedDate, Mode=OneWay}" CanUserSort="True" Width="Auto" IsReadOnly="True" />
            <DataGridTextColumn Header="{x:Static p:Resources.Last_Updated}" Binding="{Binding LastUpdated, Mode=OneWay}" CanUserSort="True" Width="*" IsReadOnly="True" />
        </DataGrid.Columns >
    </DataGrid>

誰かがDataGridロード/変更時に自動的にサイズ変更または更新する方法を知っているなら、それは素晴らしいことです。

ありがとう!

4

0 に答える 0