C#WPF:将自定义用户控件添加到Stackpanel

托比亚斯·拉斐尔·迪克曼(Tobias Raphael Dieckmann)

我尝试了一些有关将我自己创建的用户控件元素添加到列表框或堆栈面板的操作,但是并没有获得任何成功,而是导致了NullReferenceException,我不知道为什么...

我的用户控件看起来像这样:

public partial class ShiftInformationItem : UserControl
{
    public ShiftInformationItem()
    {
        InitializeComponent();
    }
}

和xaml:

<Grid>
    <LabelContent="Benutzername:" />
    <Label Content="01.03.2014 14:19" />
    <TextBox Text="Eintrag ..." />
    <Expander Header="Comments (0)">
        <Grid Background="#FFE5E5E5"/>
    </Expander>
</Grid>

在主窗口中,我可以将其添加到列表框或堆栈面板中,而不会出现任何麻烦:

<ListBox>
     <controls:ShiftInformationItem  />
</ListBox>

或者:

<StackPanel Name="ShiftInformationPanel">
     <controls:ShiftInformationItem  />
</StackPanel>

但是当我尝试用C#添加它时:

ShiftInformationList.Items.Add(new ShiftInformationItem());
ShiftInformationPanel.Children.Add(new ShiftInformationItem());

它导致NullReferenceException并说我要添加的对象为null。

有人能解释我为什么吗?

我非常感谢所有预先提供的有益和有益的答案!

更新:

public partial class HoBusReceptionMain : Window
{
    public HoBusReceptionMain()
    {
        InitializeComponent();
    }

    private void RibbonWin_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        RibbonTab r = (RibbonTab)e.AddedItems[0];
        switch (r.Header.ToString())
        {
            case "Shift Information":
                InitializeShiftInformationTab();
                break;
            default:
                MessageBox.Show(e.AddedItems[0].ToString());
                break;
        }
    }

    private void InitializeShiftInformationTab()
    {
        //here I want to add the new ShiftInformationItem
    }

}

更新2:

感谢所有评论,它显示了,我的列表|| Panel为空。但是两者都包含在主窗口中(在HoBusReceptionMain上方)

我在应用程序中使用功能区,并且选择或加载功能区选项卡时,将触发RibbonWin_SelectionChanged事件...功能区定义下方定义的列表或面板

罗希特·瓦茨(Rohit Vats)

我怀疑您是在InitializeComponent()打电话之前添加的

将添加的代码移到InitializeComponent()下面,它将像从XAML一样工作。问题是控件在InitializeComponent()调用之前未初始化,因此导致NullReferenceException

public MainWindow()
{
    InitializeComponent();
    ShiftInformationList.Items.Add(new ShiftInformationItem());
    ShiftInformationPanel.Children.Add(new ShiftInformationItem());
    // ShiftInformationPanel is null here
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将自定义视图添加到警报视图

来自分类Dev

将自定义别名添加到.zshrc

来自分类Dev

pyqt:将自定义列添加到QFileSystemModel

来自分类Dev

将自定义Gradle插件添加到项目

来自分类Dev

将自定义数字添加到ggplot图例

来自分类Dev

将自定义属性添加到SimpleSAMLPhp

来自分类Dev

C#WPF:将自定义用户控件添加到Stackpanel

来自分类Dev

将自定义代码段添加到emmet

来自分类Dev

将自定义标签添加到TIFF文件

来自分类Dev

将自定义消息添加到TestNG失败

来自分类Dev

人们为什么要将自己的自定义/用户功能添加到jQuery对象?

来自分类Dev

Hibernate将自定义前缀添加到目录

来自分类Dev

将自定义键绑定添加到XCode

来自分类Dev

将自定义属性添加到Serilog

来自分类Dev

将自定义字体添加到GUI SWT

来自分类Dev

将自定义字段添加到Django admin

来自分类Dev

将自定义路线添加到Apigility

来自分类Dev

将自定义函数添加到类

来自分类Dev

将自定义类添加到引导按钮

来自分类Dev

无法将自定义字体添加到Xcode

来自分类Dev

将自定义类型添加到Rails用户注册

来自分类Dev

将自定义标头添加到“请求”

来自分类Dev

Auth0将自定义声明添加到用户个人资料

来自分类Dev

如何将自定义属性添加到用户控件以进行绑定?

来自分类Dev

在Symfony中将自定义数据添加到用户配置文件

来自分类Dev

用户登录后将自定义属性添加到ASP.NET MVC身份

来自分类Dev

C#UWP将自定义控件添加到开始菜单磁贴

来自分类Dev

WPF 将自定义类事件处理程序添加到 HierarchicalDataTemplate

来自分类Dev

将自定义用户数据添加到 matplotlib 艺术家