В Silverlight, MVVM мне нужно создать окно свойств, но у меня есть только
List<AProperty>
объект, где AProperty
- абстрактный класс с некоторыми дочерними классами.
Я хочу привязать его к элементу управления Silverlight (но к какому?) С некоторыми условиями:
- некоторые дочерние свойства должны отображаться в виде текстового поля, некоторые в виде флажка, а некоторые в виде комбинированного списка. Это происходит от динамического типа.
- класс AProperty имеет поля
PropertyGroup
и Name
. Порядок должен быть буквенным (PropertyGroup > Name
)
Есть идеи или рабочий пример?
Мой код:
public abstract class AProperty {
private String _Name;
private String _Caption;
private String _PropertyGroup;
public String Name {
get { return _Name; }
set { _Name = value; }
}
public String Caption {
get { return _Caption; }
set { _Caption = value; }
}
public String PropertyGroup {
get { return _PropertyGroup; }
set { _PropertyGroup = value; }
}
}
List<AProperty> Properties;
И xaml:
<ListBox ItemsSource="{Binding ... Properties ...}">
<!-- Here order the items -->
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Width="250"
Text="{Binding Path=Caption}" />
<!-- And here need I a textbox, or a checkbox, or a combobox anyway -->
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Я нашел преобразователи значений только для атрибута управления, а не для всего содержимого стековой панели.