是否需要在WPF .Net Core 3或更高版本中更改数据绑定属性的调度程序?

问题描述 投票:0回答:1

许多示例(甚至来自MS)都使用调度程序来更新数据绑定属性,并且可以找到许多不同的答案。是否存在“官方”声明?当前,我一直使用调度程序,并且只有在可以确定这是一项正式功能并且在以后的.Net版本中仍然可以使用时,才更改此设置。

.net wpf multithreading dispatcher databound-controls
1个回答
0
投票

我不相信有正式声明。但是,它通常似乎取决于您正在执行的更新类型。如果要更新VM上的常规属性,那么没关系,如果要更新依赖项属性,那么就可以了。如果要从列表中添加或删除列表,则没关系,如果要从可观察集合中添加或删除列表,则可以。

[通常,我会避免在VM中使用依赖项属性,并使用INotifyPropertyChanged,将其留给您的UserControls。然后,您不必担心它们。在您的VM的基类中添加DoPropertyChanged(propertyname)之类的方法,以便随后可以创建一个属性片段,例如VB.net

Private _MajorChange As String
    Public Property MajorChange As String
        Get
            Return _MajorChange
        End Get
        Set(value As String)
            _MajorChange = value
            DoPropertyChanged("MajorChange")
        End Set
    End Property

C#

    private string _MajorChange;
    public string MajorChange
    {
        get
        {
            return _MajorChange;
        }
        set
        {
            _MajorChange = value;
            DoPropertyChanged("MajorChange");
        }
    }

并快速将属性添加到您的VM。

我们也大量使用索引属性,并且也有一个摘要。VB

    Public Property PropertyName As String
        Get
            Return Me("ColumnName")
        End Get
        Set(value As String)
            Me("ColumnName") = value
            DoPropertyChanged("PropertyName")
        End Set
    End Property

C#

public string PropertyName
{
    get
    {
        return this("ColumnName");
    }
    set
    {
        this("ColumnName") = value;
        DoPropertyChanged("PropertyName");
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.