Отображение динамического номера в заголовке вкладки WPF - PullRequest
3 голосов
/ 14 октября 2010

У меня есть TabControl, где каждый элемент содержит пользовательский элемент управления, называемый временной шкалой. Эта «временная шкала» имеет свойство «Number», которое изменяется во время выполнения.

Я хочу, чтобы свойство «Число» отображалось в заголовке TabItem. И я действительно не знаю, как это сделать, если честно.

Сначала я подумал о том, что мне нужно создать пользовательский элемент управления, производный от исходного элемента управления TabItem, и создать объект DependencyProperty или что-то подобное с пользовательским элементом ControlTemplate.

Я чувствую, что плохо объясняю это ...

Пример: я хочу сделать что-то вроде третьего изображения в посте по следующему URL, но вместо кнопки закрытия я хочу отобразить свойство «Число», которое динамически изменяется во время выполнения!

http://geekswithblogs.net/kobush/archive/2007/04/08/closeabletabitem.aspx

1 Ответ

3 голосов
/ 14 октября 2010

Если у нас есть этот класс:

public class MyItem : INotifyPropertyChanged
{
    public string Title {get; set;}

    private int number;
    public int Number
    {
        get { return number; }
        set
        {
             number= value;
             OnPropertyChanged("Number");
        }
    }
}

Мы можем связать коллекцию элементов с TabControl:

<TabControl ItemsSource="{Binding MyItems}">            
    <TabControl.ItemTemplate>
        <DataTemplate>                    
            <StackPanel Orientation="Horizontal">                            
                <TextBlock Text="{Binding Title}"/>
                <TextBlock Text="{Binding Number}"/>
            </StackPanel>                        
        </DataTemplate>
    </TabControl.ItemTemplate>
    <TabControl.ContentTemplate>
        <DataTemplate>
            <my:TimeLine Number="{Binding Number, Mode=TwoWay}" />
        </DataTemplate>
    </TabControl.ContentTemplate>
</TabControl>
...