gpt4 book ai didi

wpf - 为什么这个 WPF ComboBox 没有显示选定的值?

转载 作者:行者123 更新时间:2023-12-04 16:13:04 26 4
gpt4 key购买 nike

<CombobBox x:Name="cbo" 
Style="{StaticResource ComboStyle1}"
DisplayMemberPath="NAME"
SelectedItem="{Binding Path=NAME}"
SelectedIndex="1">
<ComboBox.ItemTemplate>
<DataTemplate>
<Grid>
<TextBlock Text="{Binding Path=NAME}"/>
</Grid>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>

Window OnLoaded事件,我写了设置 ItemsSource的代码:
cbo.ItemsSource = ser.GetCity().DefaultView;

在加载窗口时,我可以看到最初正在加载第一个项目,但同时它清除了显示的项目。我被困在这种情况下,任何帮助表示赞赏。

问候

基肖尔

最佳答案

重置 ItemsSource 会弄乱选择。

此外,您正在设置 SelectedItem 和 SelectedIndex。您只想设置其中之一;如果两者都设置,则只有一个生效。

此外,您的 SelectedItem 声明可能是错误的。 SelectedItem="{Binding NAME}"将查找与环境(可能是窗口级)DataContext 的 NAME 属性值相等的项目。仅当 ComboBox.ItemsSource 是字符串列表时,这才有效。由于您的 ItemTemplate 有效,我假设 ComboBox.ItemsSource 实际上是 City 对象的列表。但是您告诉 WPF SelectedItem 应该是一个字符串(名称)。此字符串永远不会等于任何 City 对象,因此结果将是无选择。

因此,要解决此问题,请在设置 ItemsSource 后,根据您的要求和数据模型设置 SelectedItem 或 SelectedIndex:

cbo.ItemsSource = ser.GetCity().DefaultView;
cbo.SelectedIndex = 1;
// or: cbo.SelectedItem = "Wellington"; // if GetCity() returns strings - probably not
// or: cbo.SelectedItem = City.Wellington; // if GetCity() returns City objects

关于wpf - 为什么这个 WPF ComboBox 没有显示选定的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2115256/

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