c# - Is it safe to use ComboBox.DisplayMember without data binding? -
i've understood displaymember , valuemember supposed used when databinding combobox using datasource property.
but in code i'm maintaing i've noticed using combobox' displaymember
property does work without databinding. setting property determines shown in combobox. setting valuemember
not seem work though (it not set selectedvalue
).
my question is: safe use behavior? or there risk behavior may change in upcoming versions of .net?
i know you'd override tostring
method. in real code, mytype class not simple in example. i'm not sure if safe override tostring
method.
a small sample show behavior.
using system; using system.windows.forms; internal class program { public class mytype { public string mytext { get; set; } public string myvalue { get; set; } } public class myform : form { private readonly combobox _mycombobox; public myform() { _mycombobox = new combobox {displaymember = "mytext", valuemember = "myvalue"}; _mycombobox.items.add(new mytype {mytext = "first item", myvalue = "1"}); _mycombobox.items.add(new mytype {mytext = "second item", myvalue = "2"}); _mycombobox.selectedindexchanged += _mycombobox_selectedindexchanged; controls.add(_mycombobox); } private void _mycombobox_selectedindexchanged(object sender, eventargs e) { var cb = (combobox) sender; system.diagnostics.debug.writeline( "index: {0}, selectedvalue: {1}", cb.selectedindex, cb.selectedvalue); } } private static void main() { application.run(new myform()); } }
Comments
Post a Comment