2017-02-21 45 views
0

在Silverlight中定義的靜態屬性,使用MVVM我定義相關的ViewModels一個基類和幾個子類中定義的可能值的屬性列表:的Silverlight:綁定到一個父類中的視圖模型

namespace MyNameSpace 
{ 
    public class MyViewModelBase 
    { 
     public static List<MyPropertyClass> MyPropertyValueList 
     { 
      get 
      { 
       if (myPropertyValueList == null) 
       { 
        // fill the list 
       } 
       return myPropertyValueList; 
      } 
     } 
     private static List<MyPropertyClass> myPropertyValueList = null; 
    } 
} 

現在我定義我的ViewModel:

namespace MyNameSpace.MyChild 
{ 
    public class MyViewModelChild 
    { 
     public MyPropertyClass MyProperty 
     { 
      get 
      { 
       return myProperty; 
      } 
      set 
      { 
       myProperty= value; 
       RaisePropertyChanged("MyProperty"); 
      } 
     } 
     ... 
    } 
} 

我綁定到我的視圖模型

<controls:ChildWindow 
    x:Class="MyNameSpace.MyChild.MyChildEditor"> 
<ListBox ItemsSource="{Binding Path=MyPropertyValueList, Mode=OneTime}" SelectedValue="{Binding Path=MyProperty, Mode=TwoWay}"/> 

然後綁定失敗MyPropertyValueList。 但是,如果MyPropertyValueList在它的子類中定義了它的作用。我究竟做錯了什麼 ?

回答

1

您將MyPropertyValueList定義爲靜態屬性。這在Silverlight中是不允許的。

+0

謝謝,它工作,如果我刪除靜態關鍵字。但是,如果該屬性是在子類中定義的,爲什麼它也可以工作(使用static關鍵字)? – user2223898

相關問題