1
我想讓用戶操縱我已經放入組合框的數據。事情是我無法找到一種方法將更改應用到組合框中的數據。任何線索如何實現這一目標?如何更改組合框中的項目?
要添加一些上下文,我組合框中的所有數據都是格式爲「SomeName |#」的字符串。最終的號碼由用戶修改爲他/她想要的任何內容。
我想讓用戶操縱我已經放入組合框的數據。事情是我無法找到一種方法將更改應用到組合框中的數據。任何線索如何實現這一目標?如何更改組合框中的項目?
要添加一些上下文,我組合框中的所有數據都是格式爲「SomeName |#」的字符串。最終的號碼由用戶修改爲他/她想要的任何內容。
您是否嘗試更改所選組合框項目中的文本?
comboBox.Items[comboBox.SelectedIndex] = "SomeName|#";
至於變化的數據,如果上面是不是你想要的,不是試試這個:
// Get the selected the data from the combobox
MyData data = comboBox.Items[comboBox.SelectedIndex] as MyData;
// Perform your operations
data.myData = "NewData";
// Add the modified data back
comboBox.Items[comboBox.SelectedIndex] = data;
如果綁定到一個列表:
// When adding new Data
MyData newData = new MyData("Data1");
comboBox1.Items.Add(newData);
myDataList.Add(newData);
// When modifying selected data
MyData data = comboBox1.Items[comboBox1.SelectedIndex] as MyData;
data.myData = "NewData";
comboBox1.Items[comboBox1.SelectedIndex] = myDataList[comboBox1.SelectedIndex] = data;
如果你想知道MyData是什麼:
public class MyData
{
public string myData;
public MyData(string p)
{
myData = p;
}
public override string ToString()
{
return myData;
}
}
編輯 好吧,如果你要綁定到數據源需要先解除綁定,讓我們假設數據源是myDataList:
// Get the selected data
MyData data = myDataList[comboBox.SelectedIndex] as MyData;
// Unbind
comboBox.DataSource = null;
// When adding new Data
MyData newData = new MyData("NewData" + myDataList.Count());
myDataList.Add(newData);
// When modifying selected data
data.myData = "ModifiedData";
// Rebind
comboBox.DataSource = myDataList;
我用你的第一選擇嘗試,但我得到了一個錯誤「項集合數據源屬性設置時無法修改「 –
您是否有任何機會將數據源連接到組合框? – msivri
我是。我會猜測這意味着我改變了數據源而不是組合框。 –