如何添加带有从类创建的内容的功能区选项卡

时间:2014-02-20 17:22:32

标签: c# wpf ribbon

我猜对了一个非常简单的问题,但我找不到解决方法。

我基本上想要创建一个功能区选项卡,其中包含来自类的所有内容:

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 个答案:

答案 0 :(得分:1)

  

我错过了什么?

似乎你错过了很多。 WPF只是这样写。在WPF中,我们操纵数据元素,而不是 UI元素。我们声明DataTemplate定义了如何在UI中呈现数据,因此要在TabItem中添加新的TabControl,您需要添加新的数据将项目绑定到数据集合中,该集合是绑定到ItemsSource的{​​{1}}属性的数据。

所以可以从类中创建TabControl,但这些类手动构建UI元素,而是提供数据< / em>用于控件。例如,要添加RibbonTab,您需要一个具有几个Button属性的类,以便将数据绑定到stringButton.Content属性。它还需要一个ToolTip属性来绑定到实际的ICommand属性。要添加新的Command,只需将其他类添加到相关集合中即可。

关于哪个班级在哪个集合中,这是一个很长的故事要覆盖在这里。幸运的是,数据绑定Button控件的主题已在网上广泛讨论,因此您将拥有大量有用的资源。不要忘记MSDN是一个很好的资源...... Ribbon Overview页面上有很多相关链接。