2017-02-21 7 views
0

の先祖クラスで定義された静的プロパティに結合するIは、関連のviewmodelsの基本クラスと複数の子クラスで定義されたプロパティの可能な値のリストを定義:シルバー:MVVMを使用して、Silverlightでのviewmodel

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

をそして私は私のViewModelにバインド

<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

静的キーワードを削除していただきありがとうございます。しかし、プロパティが子クラスで定義されている場合、静的キーワードを使用すると、それはなぜ機能しますか? – user2223898

関連する問題