如何从XAML中定义的数据模板以编程方式创建元素?

 何包蛋0727 发布于 2023-02-10 13:22

我正在尝试在文本下方创建多个按钮,并在运行时将它们添加到代码中的Stackpanel中。我基于数据列表创建按钮。这是我的代码:

XAML


C#

foreach (item in ItemList)
{
    Button newBtn = new Button();
    Image buttonImage = new Image();
    buttonImage.Width = 100;
    buttonImage.Height = 100;
    buttonImage.Stretch = Systems.Windows.Media.Stretch.Uniform;
    buttonImage.Source = new BitmapImage(pokemon.ImageURI);
    newBtn.Tag = item.Id;
    newBtn.Name = String.Format("{0}Button", item.Name);
    newBtn.Click += new RoutedEventHandler(newBtn_Click);

    FamilyStackPanel.Children.Add(newBtn);
}

我知道这是笨拙的编程。我真的很想在XAML中设置ControlTemplate,然后在代码中创建按钮时重用它。这是XAML:


        
            
                
                
            
            
                
                    
                
            
            
        

我已经尝试过使用上述的controlTemplate,然后为绑定设置代码中的newbtn.DataContext。

foreach (Families item in ItemList)
{
    Button newBtn = new Button();
    newBtn.Template = this.Resources["ButtonTemplate"] as ControlTemplate;
    newBtn.Tag = item.Id;
    newBtn.Name = String.Format("{0}Button", item.Name);
    newBtn.Click += new RoutedEventHandler(newBtn_Click);
    newBtn.DataContext = item;

    FamilyStackPanel.Children.Add(newBtn);
}

对于数据上下文,我也尝试过,newBtn.DataContext = ItemList[itemIndex]但这似乎没有用。我所得到的只是一个空白屏幕。

因此,我已经通过按钮创建背后的纯代码找出了问题,但是我正在尝试使用XAML控件模板来使其正常工作。有什么想法吗?

谢谢!

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有