Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > Привязка шаблона к экземпляру типа.


Автор: hexzo 1.8.2011, 12:23
Как в зависимости от того, какое конкретное значение принимает экземпляра типа свойства, отобразить его с помощью соответствующего ему шаблона?

Я хотел чё-то вроде свойства такого типа, которое должно соответствовать шаблону, который должен его отрисовывать.

Код

public enum FileType { image, book, code, video};


Код

class File
{
  public FileType fileType_prop{get;set;}
}


И в зависимости от конкретного значения fileType_prop применить тот или иной шаблон, и соответственно отобразить подходящую иконку для файла.

Код

<DataTemplate DataType="{x:Type src:FileType.book}">
</DataTemplate>


Но проблема в том, что свойство DataType должно быть типом а не экземпляром. И как это реализовать?  smile 

Автор: hexzo 2.8.2011, 15:42
Для этого в wpf есть триггеры данных. Могли бы и подсказать.  smile 

Что то типа.
Код

<DataTemplate DataType="{x:Type src:Res}">
            <StackPanel Orientation="Horizontal">
                <Ellipse x:Name="ellips" Height="10" Width="10" Fill="AliceBlue"/>
                <TextBlock Text="{Binding Path=value_prop}"/>
            </StackPanel>
            <DataTemplate.Triggers>
                <DataTrigger Binding="{Binding Path=icon_prop}" Value="red">
                    <Setter TargetName="ellips" Property="Fill" Value="Red"></Setter>
                </DataTrigger>
            </DataTemplate.Triggers>
        </DataTemplate>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)