C# 在代码隐藏中添加ListBoxItems
如何在运行时向Windows Metro样式的应用程序中的ListBox控件添加新项 我来自WinForms,所以你可以想象,我现在很困惑 我有以下资料:C# 在代码隐藏中添加ListBoxItems,c#,.net,xaml,listbox,microsoft-metro,C#,.net,Xaml,Listbox,Microsoft Metro,如何在运行时向Windows Metro样式的应用程序中的ListBox控件添加新项 我来自WinForms,所以你可以想象,我现在很困惑 我有以下资料: public class NoteView { public string Title { get; set; } public string b { get; set; } public string c { get; set; } } 然后: List<NoteView> notes = new List&
public class NoteView
{
public string Title { get; set; }
public string b { get; set; }
public string c { get; set; }
}
然后:
List<NoteView> notes = new List<NoteView>();
protected void Button1_Click(object sender, RoutedEventArgs e)
{
notes.Add(new NoteView {
a = "text one",
b = "whatevs",
c = "yawns"
});
NotesList.ItemsSource = notes;
}
再一次,什么也没发生。于是我尝试添加UpdateLayout()代码>但这也没用
有人知道这是怎么回事吗
如何向XAML列表框添加新项目
更新:
您必须以不同的方式执行此操作,您不能将所有属性都指定给listBox。
因此,创建此类类:
public class NoteView
{
public string Item { get; set; }
public int Value { get; set; }
}
这就是按钮点击事件中的代码:
List<NoteView> notes = new List<NoteView>();
notes.Add(new NoteView { Item = "a", Value = 1 });
notes.Add(new NoteView { Item = "b", Value = 2 });
notes.Add(new NoteView { Item = "c", Value = 3 });
listBox1.DataSource = notes;
listBox1.DisplayMember = "Item";
listBox1.ValueMember = "Value";
List notes=new List();
添加(新的NoteView{Item=“a”,Value=1});
添加(新的NoteView{Item=“b”,Value=2});
添加(新的NoteView{Item=“c”,Value=3});
listBox1.DataSource=注释;
listBox1.DisplayMember=“项目”;
listBox1.ValueMember=“Value”;
--
否则,如果您打算使用与您创建的类相同的类,则可以按如下方式执行:
List<NoteView> notes = new List<NoteView>();
notes.Add(new NoteView
{
a = "text one",
b = "whatevs",
c = "yawns"
});
listBox1.Items.Add(notes[0].a);
listBox1.Items.Add(notes[0].b);
listBox1.Items.Add(notes[0].c);
List notes=new List();
添加(新的NoteView)
{
a=“文本一”,
b=“whatevs”,
c=“打哈欠”
});
listBox1.Items.Add(notes[0].a);
listBox1.Items.Add(notes[0].b);
listBox1.Items.Add(notes[0].c);
列表注释=新列表();
受保护的无效按钮1\u单击(对象发送器,路由目标e)
{
添加(新的NoteView){
a=“文本一”,
b=“whatevs”,
c=“打哈欠”
});
NotesList.DisplayMember=“a”;
NotesList.ValueMember=“b”;
NotesList.ItemsSource=注释;
}
我终于想出了办法:
notes.Insert(0,新的NoteView{a=“Untitled note”,b=”“,c=”“})代码>查看此文件&@COLDTOLD谢谢;我的XAML已添加到我的问题中Metro应用程序中没有可用于ListBox的数据源
。第二个选项显示“值不在预期范围内”异常。抱歉,我也尝试过这种方法。但是谢谢你的帮助。你是在使用WPF还是Winforms。若使用WPF,那个么在Metro风格的应用程序中绑定.Xaml是另一种方式;请参阅问题标签。WinForms中没有XAML..net winform没有XAML,只有wpf有XAML
List<NoteView> notes = new List<NoteView>();
notes.Add(new NoteView { Item = "a", Value = 1 });
notes.Add(new NoteView { Item = "b", Value = 2 });
notes.Add(new NoteView { Item = "c", Value = 3 });
listBox1.DataSource = notes;
listBox1.DisplayMember = "Item";
listBox1.ValueMember = "Value";
List<NoteView> notes = new List<NoteView>();
notes.Add(new NoteView
{
a = "text one",
b = "whatevs",
c = "yawns"
});
listBox1.Items.Add(notes[0].a);
listBox1.Items.Add(notes[0].b);
listBox1.Items.Add(notes[0].c);
List<NoteView> notes = new List<NoteView>();
protected void Button1_Click(object sender, RoutedEventArgs e)
{
notes.Add(new NoteView {
a = "text one",
b = "whatevs",
c = "yawns"
});
NotesList.DisplayMember = "a";
NotesList.ValueMember = "b";
NotesList.ItemsSource = notes;
}