我已经构建了一个接口,在该接口中我将一个List<TripStop>
对象绑定到它并要求下拉列表使用:
//Convert the TripStop dictionnary to a list for databinding
StartStop.DataSource = EditorPlugin.getTripStops().Values.ToList();
StartStop.ValueMember = "Id";
StartStop.DisplayMember = "NameFr";
Id 和 NameFr 作为 Value/DisplayMembers。
如果我在绑定后检查数据源,我会看到我的所有数据都正确绑定,每个对象的每个属性都很好,我的数据没有损坏。
问题?如果我选择某些东西并查看 SelectedValue,我会得到错误的值,我会得到一个完全不同的项目的“Id”。
反向是一样的,我加载表单并要求 DropDownList :
StartStop.SelectedValue = EditorObject.StartStop;
我看到的是与我要求它选择的实际价值完全不同的项目。例如,我要求第 4 项,我选择了第 14 项。我在列表中选择项目#4,SelectedValue 是#14。
指数和价值之间没有相关性。
更奇怪的是,如果我这样做:
EditorObject.StartStop = (UInt32)((TripStop)StartStop.SelectedItem).Id;
这种方法工作正常,我从选定的项目中得到正确的值。