c# – Silverlight Combobox失去了视觉值,但在隐藏和重新显示它
发布时间:2020-12-15 21:10:31 所属栏目:百科 来源:网络整理
导读:我正在使用一个利用MVVM的Silverlight 4.0项目,我们有一个驻留在视图上的组合框,其值和选定值分别绑定到可观察的Organizations集合和SelectedOrganization(视图模型上都存在这两个值).通过我们的项目,可以隐藏或显示此控件所在的页面.第一次加载一切看起来都
我正在使用一个利用MVVM的Silverlight 4.0项目,我们有一个驻留在视图上的组合框,其值和选定值分别绑定到可观察的Organizations集合和SelectedOrganization(视图模型上都存在这两个值).通过我们的项目,可以隐藏或显示此控件所在的页面.第一次加载一切看起来都很棒但是当你转到另一个控件(用控件隐藏选项卡然后再回到它)时,组合框中当前选中的值看起来像是空白,但是当我调试时,选中价值仍然存在.
可视化树正在重新创建,但我不知道为什么当隐藏父页面然后重新显示时,组合框丢失应该在框中的文本.页面上的所有其他控件都表现正常(autocompletetextbox,textblocks,textboxes,所有这些控件都以相同的方式绑定到viewmodel). 这是组合框的声明方式: <ComboBox SelectedItem="{Binding SelectedOrganization,Mode=TwoWay}" ItemsSource="{Binding Organizations}" DisplayMemberPath="Name" Margin="5,0" MinWidth="100" /> 该组织的班级在这里: [DataContract] public class Organization { [DataMember] public Guid OrganizationID { get; set; } [DataMember] public string Name { get; set; } } 并且viewmodel具有以下代码用于绑定: public Organization SelectedOrganization { get { return (Organization)GetValue("SelectedOrganization"); } set { SetValue("SelectedOrganization",value); } } public ObservableCollection<Organization> Organizations { get { return (ObservableCollection<Organization>)GetValue("Organizations"); } set { SetValue("Organizations",value); } } 切换父页时,如何保持所选值,我需要做什么? 解决方法
问题是我在SelectedItem之后声明了ItemsSource.显然这是Silverlight 3和4中的一个错误.答案在这里讨论了
Silverlight Combobox and SelectedItem.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |