Combobox结合在wpf中的去皮化中不起作用

时间:2013-11-28 12:32:53

标签: wpf c#-4.0

我将combobox的selectedItem属性绑定到某个自定义对象,我正在使用serilization。当应用程序当前正在运行时,绑定工作正常。当我停止一个应用程序时,我正在对该对象进行seriliazing。现在,当我开始应用程序时,我正在对该对象进行deseriliazing并检索这些值。      现在,如果我看到comobox绑定,它不会显示任何绑定。但是,它仍然显示组合框中的项目。我在课堂上覆盖了Equals方法。但我仍然没有看到任何约束力。 这是我的一些代码:

  [Serializable]
public class MyModel : ViewModelBase
{
    private int _id;
    public int Id
    {
        get { return _id; }
        set
        {
            _id = value;
            OnPropertyChanged(() => Id);
        }
    }

    private string _name;
    public string Name
    {
        get { return _name; }
        set
        {
            _name = value;
            OnPropertyChanged(() => Name);
        }
    }

    public override bool Equals(object obj)
    {
        if (obj == null) return false;

        if (this.GetType() != obj.GetType()) return false;

        return this.Id == ((MyModel )obj).Id || this.Name == ((MyModel )obj).Name;

    }


}



  [Serializable]

public class MyViewModel:ViewModelBase {

private MyModel _selectedMyModel; 
 [XmlIgnore]
    public MyModel SelectedMyModel 
    {
        get
        {

            return _selectedMyModel ;
        }
        set
        {
            _selectedMyModel  = value;
            this.OnPropertyChanged(() => SelectedYAxisDetail);
        }
    }

}

我的Xaml是: -

 <ComboBox     SelectedItem="{Binding SelectedMyModel , Mode=TwoWay}"   DisplayMemberPath="Name" ItemsSource= "{Binding DataContext.MyModelSource,RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}"
                       >' 

0 个答案:

没有答案