我猜对了一个非常简单的问题,但我找不到解决方法。
我基本上想要创建一个功能区选项卡,其中包含来自类的所有内容:
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"});
我错过了什么?
祝你好运!
答案 0 :(得分:1)
我错过了什么?
似乎你错过了很多。 WPF只是不这样写。在WPF中,我们操纵数据元素,而不是 UI元素。我们声明DataTemplate
定义了如何在UI中呈现数据,因此要在TabItem
中添加新的TabControl
,您需要添加新的数据将项目绑定到数据集合中,该集合是绑定到ItemsSource
的{{1}}属性的数据。
所以可以从类中创建TabControl
,但这些类不手动构建UI元素,而是提供数据< / em>用于控件。例如,要添加RibbonTab
,您需要一个具有几个Button
属性的类,以便将数据绑定到string
和Button.Content
属性。它还需要一个ToolTip
属性来绑定到实际的ICommand
属性。要添加新的Command
,只需将其他类添加到相关集合中即可。
关于哪个班级在哪个集合中,这是一个很长的故事要覆盖在这里。幸运的是,数据绑定Button
控件的主题已在网上广泛讨论,因此您将拥有大量有用的资源。不要忘记MSDN是一个很好的资源...... Ribbon Overview页面上有很多相关链接。