Привязка WPF к свойству UserControl - PullRequest
1 голос
/ 05 ноября 2010

У меня есть список элементов, каждый из которых содержит свойство отображения типа, унаследованного от пользовательского элемента управления. Идея в том, что каждый наследующий класс может решить для себя, что он хочет отобразить для пользователя. Сами элементы расположены в DataTemplate для элемента управления вкладками ... что-то вроде ...

        <TabControl ItemsSource="{Binding FooList}">
            <TabControl.ItemTemplate>
                <DataTemplate>
                    <TabItem Header="{Binding Name}">
                        ???
                    </TabItem>
                </DataTemplate>
            </TabControl.ItemTemplate>
        </TabControl>

И классы в foo наблюдаемой коллекции выглядят как ...

    public class IFoo
    {
        public String Name { get; set; }
        public UserControl Display { get; set; }
        ...
    }

Что я не могу понять, так это как добавить свойство display, где ??? находится в XAML. Есть ли способ сделать это (пытаясь избежать этого из кода)?

1 Ответ

2 голосов
/ 05 ноября 2010

Вам нужно использовать ItemContainerStyle свойство TabControl:

<TabControl ItemsSource="{Binding FooList}">
    <TabControl.ItemContainerStyle>
        <Style TargetType="{x:Type TabItem}">
            <Setter Property="Header" Value="{Binding Name}" />
            <Setter Property="Content" Value="{Binding Display}" />
        </Style>
    </TabControl.ItemContainerStyle>
</TabControl>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...