加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读