我有一个ObservableCollection绑定到这样的列表框:
timeStamp = new SimpleDateFormat("ddMMMyyyy").format(new Date());
它将数据添加到列表框(listEmail),但是,如何在删除后更新它。这是我到目前为止所尝试的:
string[] selection = comboEmail.GetItemText(comboEmail.SelectedItem).Split(',');
Employee add = new Employee(Convert.ToInt32(selection[0]), selection[1], selection[2], selection[3]);
displayEmp.Add(add);
listEmail.DataSource = displayEmp;
但它不起作用。用户点击删除按钮后如何更新列表?
答案 0 :(得分:0)
您需要设置ItemSource
而不是DataSource。这假设您还设置了DataContext
。
listEmail.ItemSource = displayEmp;
由于您已将displayEmp
定义为ObservableCollection
,因此您的更新应自动反映。
编辑: 以下是使用BindingList进行引用的示例,该示例自动刷新UI:
public BindingList<Data> DataList { get; set; }
public void Load()
{
DataList = new BindingList<Data>
{
new Data
{
Key = "Key1",
Value = "Value1"
},
new Data
{
Key = "Key2",
Value = "Value2"
},
new Data
{
Key = "Key3",
Value = "Value3"
}
};
listBox1.DataSource = DataList;
listBox1.DisplayMember = "Value";
listBox1.ValueMember = "Key";
}
public class Data
{
public string Key { get; set; }
public string Value { get; set; }
}
private void button1_Click(object sender, EventArgs e)
{
DataList.RemoveAt(1);
}