我有744:00
绑定到ComboBox
,其中ObservableCollection
引用了对象属性DisplayMemberPath
。
我的Url
包含CompositeCollection
项,允许用户进行选择:
null
这样可以正常工作(它会产生一个URL下拉列表和一个默认的“无”项),但是在调试时,我有一个错误,因为<ComboBox Grid.Row="7" Grid.Column="1" Height="24" VerticalAlignment="Top"
IsSynchronizedWithCurrentItem="True"
SelectedItem="{Binding SelectedNotificationServer, Mode=TwoWay}"
DisplayMemberPath="Url">
<ComboBox.Resources>
<CollectionViewSource x:Key="comboBoxSource" Source="{Binding Path=NotificationServers}" />
</ComboBox.Resources>
<ComboBox.ItemsSource>
<CompositeCollection>
<ComboBoxItem Content="None"/>
<CollectionContainer Collection="{Binding Source={StaticResource comboBoxSource}}" />
</CompositeCollection>
</ComboBox.ItemsSource>
</ComboBox>
项上的Url
属性不可用:
null
我如何优雅地处理它,即使它不会导致任何运行时问题。它可能只是调试噪音,但仍然令人讨厌。
答案 0 :(得分:-1)
您的'null'项应该只是您的集合中的项目(与其余项目的类型相同)没有设置属性,或者至少没有显示的属性。这样,您可以一起避免Binding
错误,因为您的'null'项将具有数据绑定的Url
属性。
更新&gt;&gt;&gt;
当您访问其他数据项时,可以像这样设置'null'项目:
NotificationServers.Add(new NotificationServer());
NotificationServers.AddRange(GetNotificationServers());
这将使它成为第一个项目。你也可以这样做:
NotificationServers.Add(new NotificationServer() { DisplayedProperty = "Please Select" });