В Silverlight, используя MVVM я определить базовый класс для связанных ViewModels и список возможных значений для свойства, определенного в нескольких дочерних классах: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
определен в дочернем классе, он работает. Что я делаю не так ?
Спасибо, он работает, если я удаляю статическое ключевое слово. Но почему он также работает (используя ключевое слово static), если свойство определено в дочернем классе? – user2223898