WPF делает шаблоны для редактирования - PullRequest
0 голосов
/ 20 сентября 2009

Я создаю небольшую цифровую систему вывесок для внутренних машин. Я хотел бы предоставить редакторам (не техническим специалистам) шаблон для выбора макета. Что-то в строке:

Концептуальный чертеж шаблона http://www.vikingworks.dk/template.png

Мне должно быть легко поддерживать шаблоны и создавать новый шаблон, т.е. просто создавать разметку XAMl.

Есть идеи, как заставить это работать? что мне делать во время выполнения? как мне создать шаблоны?

Любые указатели, которые приведут меня в правильном направлении, приветствуются

1 Ответ

0 голосов
/ 20 сентября 2009

Не уверен, что я полностью следую, но, вероятно, есть фиксированное количество полей, которые могут быть отображены. Таким образом, вы можете выставить эти поля через модель представления:

public class YourViewModel : ViewModel
{
    public string Text
    {
        //get and set omitted
    }

    public ImageSource Image1
    {
        //get and set omitted
    }

    public ImageSource Image2
    {
        //get and set omitted
    }
}

Каждый ваш шаблон может храниться под другим ключом:

<DataTemplate x:Key="FirstTemplate" DataType="{x:Type local:YourViewModel}">
    ...
</DataTemplate>

<DataTemplate x:Key="SecondTemplate" DataType="{x:Type local:YourViewModel}">
    ...
</DataTemplate>

Тогда внутри каждого шаблона можно просто привязать поля к вашей модели представления:

<TextBlock Content="{Binding Text}"/>
<Image Grid.Row="1" Source="{Binding Image1}"/>
<Image Grid.Row="1" Grid.Column="1" Source="{Binding Image2}"/>

Для переключения между шаблонами вы можете просто заменить ресурс на соответствующем уровне иерархии ресурсов:

this.Resources.Clear();
this.Resources.Add(FindResource(templateKey));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...