为什么选定项不显示在组合框中
本文关键字:组合 显示 为什么 | 更新日期: 2023-09-27 17:55:48
在 XAML 中使用以下绑定时,所选项不会显示在组合框中(具体而言,不会为网站显示当前类型)。我们正在使用caliburn微框架和DevForce Ideablade。MySite是一个Ideablade实体。
<ComboBox Grid.Column="3" Grid.Row="3"
ItemsSource="{Binding MySiteTypes}"
DisplayMemberPath="description"
SelectedItem="{Binding MySite.SiteType, Mode=TwoWay}"
SelectedValuePath="description"/>
视图模型中的代码:
private BindableCollection<SiteType> _mySiteTypes;
public BindableCollection<SiteType> MySiteTypes
{
get { return _mySiteTypes; }
set { _mySiteTypes = value; NotifyOfPropertyChange(() => MySiteTypes); }
}
使用组合框设置网站类型(类型存在于下拉列表中)后,它会正确显示类型并更改数据库中的类型。我错过了什么,为什么它不想第一次显示现有类型?
根据我对ComboBox的经验,这类问题通常归结为时间。 在评估选定项绑定之前,您的项源(我的网站类型)是否可用?
好的,我找到了解决方案(迈尔斯 J 很接近):
在加载项源中的项之前评估所选项,从而导致不显示所选项。我需要在填充 MySiteType 的异步查询完成后调用 MySite 的 NotifyOfPropertyChange。
项目是否已加载?也许您必须使用数据模板来显示其文本属性。
如果它们是字符串,我最近遇到了类似的问题,不得不使用转换器使用 selectedIndex:
Silverlight 4 中 ComboBox 的转换器