带有绑定的 ComboBox 中未显示空项目
我在 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以尝试在绑定中使用 TargetNullValue 属性,并设置一些默认值。 IE,
You can try using the TargetNullValue property in your binding, setting some default. I.e.,
像我遇到的每个项目一样,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?