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
が子クラスで定義されていれば動作します。私は間違って何をしていますか?
静的キーワードを削除していただきありがとうございます。しかし、プロパティが子クラスで定義されている場合、静的キーワードを使用すると、それはなぜ機能しますか? – user2223898