带有绑定的 ComboBox 中未显示空项目

发布于 2024-09-17 01:28:14 字数 519 浏览 6 评论 0原文

我在 WPF/C# 中使用 null 和 ComboBox 时遇到一些困难;如果添加空项目,则它不会在组合框中显示/列出。

这是我的 ComboBox MyList 的 XAML 声明,

<ComboBox ItemsSource="{Binding Path=MyList}"
          SelectedItem="{Binding Path=Type}" />

声明为

public ObservableCollection<Type> MyList { get; private set; }

并初始化为

this.MyList = new ObservableCollection<Type>();
this.MyList.Add(null);

绑定工作正常,如果我添加非空项目,则会列出。 我需要指定允许空值吗?

lg, 多米尼克

I'm having some difficulties with null and a ComboBox in WPF/C#; If a add a null item it is not shown/listed in the ComboBox.

Here is de XAML declaration of my ComboBox

<ComboBox ItemsSource="{Binding Path=MyList}"
          SelectedItem="{Binding Path=Type}" />

MyList is declared as

public ObservableCollection<Type> MyList { get; private set; }

and initialized with

this.MyList = new ObservableCollection<Type>();
this.MyList.Add(null);

The binding works fine, and if I add non-null items the are listed.
Do I need to specify to allow null values?

lg,
Dominik

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

随心而道 2024-09-24 01:28:14

您可以尝试在绑定中使用 TargetNullValue 属性,并设置一些默认值。 IE,

 {Binding Path=MyList, TargetNullValue="Empty Item"}

You can try using the TargetNullValue property in your binding, setting some default. I.e.,

 {Binding Path=MyList, TargetNullValue="Empty Item"}
梦初启 2024-09-24 01:28:14

像我遇到的每个项目一样,ComboBox 无法为空项目呈现任何内容。据我了解,如果没有可供渲染的视觉内容,它会调用该项目的 ToString() 方法并渲染它。由于您的项目为空,这是不可能的。

我认为这个问答不过,A 可能对你有帮助。

显示默认的 DataTemplate在 ContentControl 中,当其内容为 null 或为空时?

A ComboBox like every item i've encountered cannot render anything for a null item. It's my understanding that if there is no visual content for it to render, it calls the ToString() method on the item and renders that. As your item is null, this is not possible.

I think this Q & A might be helpful to you though.

Display a default DataTemplate in a ContentControl when its content is null or empty?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文