2014-02-20 4 views
0

Я против очень простой проблемы, я думаю, однако я не нашел способа ее решить.Как добавить вкладку ленты с контентом, созданным из класса

Я в принципе хочу создать вкладку ленты со всем подмигнул контент из класса:

class RibbonTabHome 
{ 
    public RibbonTab RibbonTab_Container; 

    public RibbonTabHome() 
    { 
     RibbonTab_Container = new RibbonTab() { Header = "Wont appear!" }; 
    } 
} 

Затем я называю класс и добавить вкладку к ленте:

public MainWindow() 
{ 
    InitializeComponent(); 

    RibbonTabHome asd = new RibbonTabHome(); 

    RibbonMain.Items.Add(asd.RibbonTab_Container); 
} 

Для по какой-то причине добавляется только сам контейнер табуляции, текст заголовка отсутствует!

Однако это заявление прекрасно работает!

RibbonMain.Items.Add(new RibbonTab() { Header = "Appearing"}); 

Что мне не хватает?

С уважением!

ответ

1

Что мне не хватает?

Кажется, что вам не хватает многого. WPF просто не написано так. В WPF мы управляем элементами данных, а не Элементы пользовательского интерфейса. Мы заявляем DataTemplate S, которые определяют, как наши данные должны отображаться в пользовательском интерфейсе, так, чтобы добавить новый TabItem в TabControl, вы добавляете новые данные элемента в данных сбора, который данные связаны с ItemsSource собственностью TabControl.

Таким образом, вы можете создать RibbonTab из классов, но эти классы делают не вручную создавать элементы пользовательского интерфейса, вместо этого они предоставляют данныедля элементов управления. Например, чтобы добавить Button, вам понадобится класс, который имел пару свойств string, чтобы привязать данные к объектам Button.Content и ToolTip. Ему также понадобится свойство ICommand для привязки данных к фактическому свойству Command. Чтобы добавить новый Button, вы просто добавляете другой из этих классов в соответствующую коллекцию.

Что касается того, какой класс входит в какую коллекцию, хорошо, что далеко не так долго рассказывать здесь. К счастью, тема привязки данных RibbonTab была широко обсуждена онлайн, поэтому у вас будет много хороших источников для этого. Не забывайте, что MSDN - отличный ресурс ... существует множество релевантных ссылок с страницы Ribbon Overview.

+0

Большое спасибо за ваш комментарий! Я изучил привязки и datatemplates сейчас и начал его разглядывать. У меня все еще есть одна проблема с datatemplate. Я был бы очень благодарен, если вы проверите мой новый вопрос по адресу: http://stackoverflow.com/questions/21966941/whats-wrong-datatemplate-with-itemssource – LamaCoder

Смежные вопросы