In Silverlight, mit MVVM Ich definiere eine Basisklasse für verwandte Viewmodels und eine Liste der möglichen Werte für eine Eigenschaft in mehreren untergeordneten Klassen definiert:Silverlight: Bindung an eine statische Eigenschaft definiert in einem Vorfahren Klasse des 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;
}
}
Jetzt definiere ich meine Viewmodel:
namespace MyNameSpace.MyChild
{
public class MyViewModelChild
{
public MyPropertyClass MyProperty
{
get
{
return myProperty;
}
set
{
myProperty= value;
RaisePropertyChanged("MyProperty");
}
}
...
}
}
Und ich binden an meine Viewmodel
<controls:ChildWindow
x:Class="MyNameSpace.MyChild.MyChildEditor">
<ListBox ItemsSource="{Binding Path=MyPropertyValueList, Mode=OneTime}" SelectedValue="{Binding Path=MyProperty, Mode=TwoWay}"/>
Dann schlägt die Bindung für MyPropertyValueList
fehl. Aber wenn die MyPropertyValueList
in der Kindklasse definiert ist, funktioniert es. Was mache ich falsch ?
Danke, es funktioniert, wenn ich das statische Schlüsselwort entfernen. Aber warum funktioniert es auch (mit dem Schlüsselwort static), wenn die Eigenschaft in der Kindklasse definiert ist? – user2223898