MVVM Light Toolkit 4.5设置方法

时间:2014-03-06 15:04:34

标签: mvvm-light release

刚刚注意到4.2.30版本不包括

protected bool Set<T>(
            ref T field,
            T newValue,
            [CallerMemberName] string propertyName = null)
        {
            return Set(propertyName, ref field, newValue);
        }

由于编译常量“CMNATTR”在发布模式下未定义为BUILD参数。 任何想法,如果它是错误的或故意的?

谢谢。

1 个答案:

答案 0 :(得分:2)

我今天偶然发现了这一点,并且还希望将[CallerMemberName]与MVVMLight提供的一些方法结合使用。洛朗给了answer earlier on this issue,但似乎他没有时间来解决这个问题。因此,一种选择是下载源,设置符号并在发布模式下重建。我自己没试过,我不确定这是否会产生其他影响。

现在的另一个解决方法是扩展ViewModelBase,只需使用[CallerMemberName]添加所需方法的变体。例如。在你的情况下:

public class ViewModelBaseCustom : ViewModelBase
{
    public bool Set<T>(ref T field, T value, [CallerMemberName] string propertyName = "")
    {
        return this.Set(propertyName, ref field, value);
    }
}

然后使用Laurent原创的自定义版本,直到MVVMLight更新为止。