簡體   English   中英

WPF:DataGrid顯示錯誤

[英]WPF: DataGrid Display Error

我有一個包含3列的DataGrid,其中2列是DataGridTextColumns,最后一個是包含CheckBox的DataGridTemplateColumn。 它綁定到一個ObservableCollection的Field對象。

用戶可以根據ComboBox的SelectedItem更改DataGrid中的數據,ComboBox位於DataGrid的正上方。 此ComboBox綁定到RecordType對象的List。 我選擇了一個List,因為它中的值不會改變。

我遇到的問題很奇怪。 有時,但並非總是(錯誤是非常不穩定的),當更改ComboBox中的值時,DataGrid中的行顯示奇怪(請參見屏幕截圖),同時向下滾動列表。 DataGrid中的某些行在其左側顯示一個小灰色區域,並且該行的內容被推向右側,這使得難以讀取單元格的值。 當您繼續向上或向下滾動時,其他單元格以相同的方式顯示,但問題似乎只影響最小行數,最大值為5。 受影響的行並不總是相同,並且可以隨着ComboBox項目的更改而更改。

為了確認,我在屏幕截圖中刪除了某些字段名稱以保護我們客戶的隱私。

任何人都可以建議可能導致此顯示問題的原因嗎? 下面給出了我用於ComboBox和DataGrid的XAML代碼。

任何建議/意見/幫助將不勝感激。

非常感謝!

<ComboBox ItemsSource="{Binding RecordTypes}" SelectedItem="{Binding SelectedRecordType}" DisplayMemberPath="DisplayName" HorizontalAlignment="Left" Margin="9,71,0,0" VerticalAlignment="Top" Width="195"/>
<DataGrid SelectedItem="{Binding SelectedField}" ItemsSource="{Binding Fields}" GridLinesVisibility="None" AutoGenerateColumns="False" HorizontalAlignment="Left" Margin="10,98,0,0" VerticalAlignment="Top" Height="385" Width="400" IsReadOnly="True" CanUserReorderColumns="False" CanUserResizeRows="False" HeadersVisibility="Column" SelectionMode="Single" MaxColumnWidth="300">
    <DataGrid.CellStyle>
        <Style TargetType="DataGridCell">
            <Setter Property="BorderThickness" Value="0" />
            <Setter Property="ToolTip" Value="{Binding Description}" />
            <Style.Triggers>
                <Trigger Property="ToolTip" Value="{x:Static system:String.Empty}">
                    <Setter Property="ToolTipService.IsEnabled" Value="False" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </DataGrid.CellStyle>
    <DataGrid.Columns>
        <DataGridTextColumn Binding="{Binding DisplayName}" Header="Field" Width="150" />
        <DataGridTextColumn Binding="{Binding DisplayPath}" Header="Path" Width="*" />
        <DataGridTemplateColumn MinWidth="25" MaxWidth="25">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <CheckBox IsChecked="{Binding IsChecked, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Margin="5" />
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
    </DataGrid.Columns>
</DataGrid>

嘗試將datagrid的RowHeaderWidth參數設置為0 ,如:

<DataGrid
    RowHeaderWidth="0"
    ... your other parameters for the datagrid ...
>

(它似乎與此處提出的問題相同: WPF DataGrid行標題可見性錯誤 。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM