相关疑难解决方法(0)

通过T4代码生成自动INotifyPropertyChanged实现?

我正在设置我的新项目,并且想知道如何实现我的ViewModel类确实具有INotifyPropertyChanged支持,而不必亲自手动编码所有属性.

我查看了AOP框架,但我认为他们只会用另一个依赖项炸毁我的项目.

所以我考虑用T4生成属性实现.

设置是这样的:我有一个ViewModel类,它只声明它的Properties背景变量,然后我用T4从它生成Property Implementations.

例如,这将是我的ViewModel:

public partial class ViewModel
{
    private string p_SomeProperty;
}
Run Code Online (Sandbox Code Playgroud)

然后T4将遍历源文件并查找名为"p_"的成员声明并生成如下文件:

public partial class ViewModel
{
    public string SomeProperty
    {
        get
        {
            return p_SomeProperty;
        }
        set
        {
            p_SomeProperty= value;
            NotifyPropertyChanged("SomeProperty");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这种方法有一些优点,但我不确定它是否真的有效.所以我想在StackOverflow上发布我的想法作为一个问题,以获得一些反馈,也许一些建议如何更好/更容易/更安全.

c# t4 inotifypropertychanged

10
推荐指数
1
解决办法
4119
查看次数

如何提高派生类中的属性?

如何提高PropertyChangedSomePropertyB

此示例无法编译,因为PropertyChanged无法以这种方式访问​​...

public class A : INotifyPropertyChanged
{
    public event PropertyChangedEventHandler PropertyChanged;
}

public class B : A
{
    private object _someProperty;

    public object SomeProperty
    {
        get => _someProperty;
        set
        {
            _someProperty = value;
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(SomeProperty)))
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# wpf events propertychanged inotifypropertychanged

0
推荐指数
1
解决办法
192
查看次数

标签 统计

c# ×2

inotifypropertychanged ×2

events ×1

propertychanged ×1

t4 ×1

wpf ×1