【发布时间】:2020-12-16 15:27:38
【问题描述】:
我在 AvaloniaUI 中有一个 ComboBox,我想根据另一个类的数组提供的名称动态加载列表。比如下面的代码:
<ComboBox Name="Select" SelectedIndex="0"></ComboBox>
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
}
);
}
}
}
public class Note
{
public string Name;
public string NoteText;
}
我不确定在 AvaloniaUI 中执行此操作的正确方法,因为在 WPF 中您可以直接调用 comboBox.Items.Add() 函数。但是,在使用 AvaloniaUI 时,该功能似乎不存在。
【问题讨论】:
-
您是否尝试过将
comboBox.Items直接设置为您的数组并在XAML 中为Note类定义数据模板? -
@kekekeks 我不确定我是否理解你的意思。能给个代码示例吗?
-
comboBox.Items = new List
{ new Note {Name="name", NoteText="text"}, new Note {Name="name 2", NoteText="text"} };
标签: c# .net-core avaloniaui