Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.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
C# Silverlight&;WPF-DataContext和PropertyChangedEvents的启动方式_C#_Silverlight_Entity Framework 4_Binding - Fatal编程技术网

C# Silverlight&;WPF-DataContext和PropertyChangedEvents的启动方式

C# Silverlight&;WPF-DataContext和PropertyChangedEvents的启动方式,c#,silverlight,entity-framework-4,binding,C#,Silverlight,Entity Framework 4,Binding,你好,塔克洛维安人 关于如何确保Silverlight或WPF视图正确启动NotifyPropertyChanged事件,我有一个问题 我在Silverlight应用程序中有一个案例,我这样设置了我的DataContext public SubTopic SubTopicItem { get { return (SubTopic)GetValue(SubTopicItemProperty); } set { SetValue(Su

你好,塔克洛维安人

关于如何确保Silverlight或WPF视图正确启动NotifyPropertyChanged事件,我有一个问题

我在Silverlight应用程序中有一个案例,我这样设置了我的DataContext

 public SubTopic SubTopicItem
        {
            get { return (SubTopic)GetValue(SubTopicItemProperty); }
            set { SetValue(SubTopicItemProperty, value); }
        }

        // Using a DependencyProperty as the backing store for SubTopicItem.  This enables animation, styling, binding, etc...
        public static readonly DependencyProperty SubTopicItemProperty =
            DependencyProperty.Register("SubTopicItem", typeof(SubTopic), typeof(AddModifySubTopic), new PropertyMetadata(null));


        public AddModifySubTopic()
        {
            InitializeComponent();
            this.DataContext = this;       
        }
我遇到了一些数据网格的问题,这些数据网格从这个对象上的一些EntityProperty中提取数据

我的主要问题是,如果不使用

    public AddModifySubTopic()
    {
        InitializeComponent();
        this.DataContext = this;       
    }
我使用:

        public AddModifySubTopic()
        {
            InitializeComponent();
            this.DataContext = SubTopicItem;       
        }
Silverlight或WPF框架是否会更直接地处理DataContext,并在对象的整个生命周期内通知是否有任何属性或实体集发生更改

目前,我需要使用

DataGridName.SetValue(DataGrid.ItemsSourceProperty, SubTopicItem);
谢谢大家

干杯
Robbie

听起来你在数据绑定方面有问题。我认为你发布的大部分代码不会对这个问题有多大帮助

如果绑定不起作用,则几乎总是出现以下问题:

  • XAML绑定语法
  • 源对象以及INotifyPropertyChanged的实现方式
  • 我建议将不工作的代码提取出来,使其尽可能简单,然后发布XAML和源对象

    编辑

    根据您的评论:

    当一个新项目被添加到
    列表中
    并且 问题更多的是问什么是最好的方法? this.DataContext=DEPENDENCYOBJECT或this.DataContext= 子窗口/页面等

    设置DataContext的方式不应影响绑定的操作方式(在其他条件相同的情况下)


    如果您确实在使用
    列表
    ,这可能是您的问题,因为集合更改通知与属性更改通知的工作方式不同。您将要绑定到一个
    可观察集合
    。如果生成了实体类,我不确定这是否是一个选项,但可能是(我不是实体框架专家)。

    是否使用过MVVMLight toolkit???@GlennFerrieLive-不,我实际上没有,现在正在查找它。你认为这会对我有所帮助吗?我的绑定工作得非常好,并且对象是一个EntityObject,它已经默认实现了NotifyPropertyChanged(我相信)。当一个新项目被添加到一个列表中时,问题就出现了,问题更多的是问什么是最好的方法?this.DataContext=DEPENDENCYOBJECT或this.DataContext=CHILDWINDOW/PAGE等。谢谢Phil,将我的集合类型更改为可观察集合修复了所有问题。