首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用AvaloniaUI动态加载ComboBox中的项

如何使用AvaloniaUI动态加载ComboBox中的项
EN

Stack Overflow用户
提问于 2020-12-16 23:27:39
回答 1查看 506关注 0票数 0

我在AvaloniaUI中有一个ComboBox,我想根据另一个类的数组提供的名称动态加载列表。例如,使用以下代码:

代码语言:javascript
运行
复制
<ComboBox Name="Select" SelectedIndex="0"></ComboBox>
代码语言:javascript
运行
复制
public class MainWindow : Window
{
    private Note[] notes;
    public MainWindow()
    {
        InitializeComponent();
    }

    private void InitializeComponent()
    {
        AvaloniaXamlLoader.Load(this);
        notes = Utility.GetNotes();

        ComboBox comboBox = this.Find<ComboBox>("Select");
        foreach (Note n in notes)
        {
            comboBox.Items.Add(
                new ComboBoxItem()
                {
                    Content = n.Name
                }
            );
        }
    }
}
代码语言:javascript
运行
复制
public class Note
{
    public string Name;
    public string NoteText;
}

我不确定在AvaloniaUI中做这件事的正确方法,因为在WPF中你可以直接调用那个comboBox.Items.Add()函数。但是,在使用AvaloniaUI时,该函数似乎不存在。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-03 22:23:16

在上面的@kekekeks评论之后,我做了一些修改就能让它工作起来:

代码语言:javascript
运行
复制
<ComboBox Name="Select">
    <ComboBox.ItemTemplate>
      <DataTemplate>
        <TextBlock Text="{Binding Name}" />
      </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>
代码语言:javascript
运行
复制
public class MainWindow : Window
{
    private List<Note> Notes;
    public MainWindow()
    {
        InitializeComponent();
    }

    private void InitializeComponent()
    {
        AvaloniaXamlLoader.Load(this);
        Notes = Utility.GetNotes();
        ComboBox comboBox = this.Find<ComboBox>("Select");
        comboBox.Items = Notes;
        comboBox.SelectedIndex = 0;
    }
}
代码语言:javascript
运行
复制
public class Note
{
    public string Name { get; set; }
    public string NoteText { get; set; }
}

我只想补充一点,将Notes变量作为数组似乎不起作用,所以我不得不将其改为list,还必须将Note类更改为使用{ get; set; }

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65326248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档