C# 在代码隐藏中添加ListBoxItems

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&

如何在运行时向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<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;
}