Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
组合框绑定在wpf中的反序列化中不起作用_Wpf_C# 4.0 - Fatal编程技术网

组合框绑定在wpf中的反序列化中不起作用

组合框绑定在wpf中的反序列化中不起作用,wpf,c#-4.0,Wpf,C# 4.0,我将combobox的selectedItem属性绑定到某个自定义对象,并使用序列化。当应用程序当前正在运行时,绑定工作正常。停止应用程序时,我正在序列化对象。现在,当我启动应用程序时,我正在反序列化对象并检索值。 现在,如果我看到comobox绑定,它不会显示任何绑定。但是,它仍然在组合框中显示项目。我已经重写了类中的Equals方法。但我仍然没有看到任何约束力。 这是我的一些代码: [Serializable] public class MyModel : ViewModelBase {

我将combobox的selectedItem属性绑定到某个自定义对象,并使用序列化。当应用程序当前正在运行时,绑定工作正常。停止应用程序时,我正在序列化对象。现在,当我启动应用程序时,我正在反序列化对象并检索值。 现在,如果我看到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]
公共类MyViewModel:ViewModelBase {

}

我的Xaml是:-

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

这是否意味着要绑定并序列化同一对象?如果是这样的话,这意味着您混合了viewmodel和model,这不是很好。除此之外:请出示一些代码。XAML、序列化和viewmodel中的属性会很有帮助。谢谢@hSchroedl的回复。你好@hSchroedl。我刚刚上传了一些代码片段,请查看一下,如果我做错了什么,请告诉我。好的,我不明白。代码看起来不错。如果combobox显示了正确的项目,那么“但我仍然没有看到任何绑定”到底是什么意思?我的意思是combobox显示了其中填充的所有项目,但它没有显示combobox中的选定项目。我的意思是combobox的SelectedItem不起作用。
 <ComboBox     SelectedItem="{Binding SelectedMyModel , Mode=TwoWay}"   DisplayMemberPath="Name" ItemsSource= "{Binding DataContext.MyModelSource,RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}"
                       >'