gpt4 book ai didi

c# - DataGrid ComboBox第一次点击没有选中项

转载 作者:太空宇宙 更新时间:2023-11-03 10:32:23 25 4
gpt4 key购买 nike

最近问过类似的问题herehere ,但无法正确解决问题。

我有一个带有 ComboBox 的 DataGrid,它可以包含或不包含选定的项目。但如果是这样,则 ComboBox 应该在下拉菜单打开时选择它,但事实并非如此。

ComboBox

目前我有这段代码,除了第一次打开下拉菜单时可以正常工作。它没有被选中。

 <DataGridTemplateColumn Header="Company">
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}, Path=DataContext.Companies}"
SelectedItem="{Binding Company, Converter={StaticResource NullValueConverter}}"/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Company, Converter={StaticResource NullValueConverter}}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

NullValueConverter 可防止公司为 null 时出现异常。

最佳答案

  • 如果您的公司不是您在评论中提到的字符串,那么它将无法显示名称,除非您设置DisplayMemberPath="Name" 或创建一个 ItemTemplate。

  • 您应该使用 SelectedItem="{Binding
    Company,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}"
    更新值(value)一旦改变,因为如果你不这样做,它只会当您关注另一个单元格或行时引发 ProperyChanged。

  • 如果您的属性是不可变的或值类型,那么您应该使用 SelectedValue="{Binding Path=Company,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}"SelectedValuePath="Content"

.

关于c# - DataGrid ComboBox第一次点击没有选中项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29523632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com