[英]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.