我有一个数据网格,我正在用一个对象填充它。假设客户,每个客户都有一个项目。我有一个按钮,可以向数据网格中添加一个客户,并随机添加一个项目。如果我不断向数据网格中添加客户,直到客户的数量超过数据网格的高度(这会导致出现滚动)在我按下该点之前,该点以外的数据不准确我通过增加数据网格的高度来测试它,当我开始插入那些没有出现在我的视图中的行时(直到我向下滚动),数据似乎没有正确同步。我怀疑这是同步/初始化问题。
我的数据网格xaml:
<DataGrid x:Name="DG" HorizontalAlignment="Left" Height="291" Margin="706,84,0,0" VerticalAlignment="Top" Width="300"
ItemsSource="{Binding CustomersList}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Customer" Binding="{Binding Name, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Width="*"/>
<DataGridTemplateColumn Header="Item" Width="*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<local:CustomComboBox SelectedItem="{Binding Item, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
ItemsSource="{Binding DataContext.ItemsList, ElementName=MainWind}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
自定义组合框
<Grid DataContext="{Binding ElementName=Root}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="30"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<!-- Image at the side of the ComboBox -->
<Image Height="30" Width="30" Grid.Column="0"
Source="{Binding SelectedItem.Type, Converter={StaticResource ImageConverter}}"/>
<!-- Actual ComboBox -->
<ComboBox x:Name="CustomCombo" Grid.Column="1"
IsTextSearchEnabled="False" IsReadOnly="True" KeyDown="CustomCombo_KeyDown"
DropDownOpened="CustomCombo_DropDownOpened" DropDownClosed="CustomCombo_DropDownClosed"
Loaded="CustomCombo_Loaded"
IsEditable="True" TextSearch.TextPath="Name"
Text="{Binding Text, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
SelectedItem="{Binding SelectedItem, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
ItemsSource="{Binding ItemsSource, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<!-- StackPanel consisting of an Image and TextBlock as ItemTemplate-->
<Image Height="30" Width="30"
Source="{Binding Path=Type, Converter={StaticResource ImageConverter}}"/>
<TextBlock Text="{Binding Path=Name}" VerticalAlignment="Center"/>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</Grid>
我不知道这个问题的专业术语来寻找解决方案。
1条答案
按热度按时间mklgxw1f1#
给github.com/melsawy93/WPFTestAppBug
这个存储库有很多问题。
首先,存储库本身的创建不正确。它应该包含忽略和属性文件。由于它们的缺失,很多额外的文件进入了存储库,包括.vs,bin,obj文件夹。它们的存在在每次提交时增加了很多想象中的更改。
尝试通过Git Visual Studio菜单创建一个新的空仓库。你会在那里看到忽略和属性文件。将它们复制到你的仓库中。并使用CitHub Web界面删除其中多余的文件夹。
我将在这里发布需要对源代码进行的更改:
主窗口。
第一个
自定义组合框
第一个
**P.S.**请记住,我并没有修复所有的bug。只修改了本主题顶部的问题的解决方案。