2014-03-06 88 views
3

只注意到4.2.30版本不包含MVVM光工具包4.5設置方法

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

由於編譯常數「CMNATTR」沒有定義爲在釋放模式BUILD說法。 任何想法,如果是錯誤或故意的?

謝謝。

回答

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); 
    } 
} 

然後使用此自定義版本的洛朗的原始,直到MVVMLight已更新。

+0

正是我所做的,編譯w/CMNATTR。到目前爲止它工作得很好。 –

+0

Laurent剛剛評論說,下週即將發佈的新版本包括此功能/修復。來源:https://mvvmlight.codeplex.com/discussions/492941 – Thomas