C1flexgrid中做一个下拉列表问题
我想用的是MVVM模式做了一个Demo,单元格内做下拉列表combobox但是不成功,希望可以帮我看一下问题在哪不知道为什么没有值,全是空白的 您好,这种情况可能没有绑到值,可以在后台绑定值,我这边给你提供一个demo
JeffryLI 发表于 2018-12-21 18:10
您好,这种情况可能没有绑到值,可以在后台绑定值,我这边给你提供一个demo
您好,这种方法是键值对,只能用这种方法吗
下面这段代码能帮我解读一下吗,因为也是设置下拉列表,但是看不懂
private void fg_grid_item_PrepareCellForEdit(object sender, CellEditEventArgs e)
{
//可以根据选择的行 列 设置下拉列表内容
if (fg_grid_item.Columns.ColumnName == "QFSM")
{
List<int>list_test = new List<int>();
list_test.Add(12);
combo = (e.Editor as Border).Child as C1FlexComboBox;
combo.DropDownItems = list_test
//还可以添加事件响应
combo.SelectionChanged += new RoutedEventHandler(combo_SelectionChanged);
}
}
本帖最后由 Alwaysmissing 于 2018-12-22 09:35 编辑
JeffryLI 发表于 2018-12-21 18:10
您好,这种情况可能没有绑到值,可以在后台绑定值,我这边给你提供一个demo
您好,按照您给的demo进行修改之后,可以有下拉菜单了,选择完之后的值一开始是我设置的城市名但是按下回车或者选择别的单元格之后城市名变成了数字而不是我存的值了,这应该怎么解决
代码如下:
Dictionary<int, string> dct = new Dictionary<int, string>();
foreach (var country in m.CC)
{
dct = country.Cities;
}
comb.Columns["Cities"].ValueConverter = new ColumnValueConverter(dct);
您好,把你这个有问题demo发给我 我看看,具体需要看到您的工程来判断原因。 JeffryLI 发表于 2018-12-24 11:35
您好,把你这个有问题demo发给我 我看看,具体需要看到您的工程来判断原因。
本帖最后由 JeffryLI 于 2018-12-24 16:22 编辑
您好,问题在于您在表格上绑定的是值本身已经是城市的文本,如果我们拿到城市的文本去键值对在转换,就转换成了key值,所以改正的方法就是绑定,Clumn 上是绑的cityid ,在键值对里面应该是cityid为key ,value为城市的文本。就可以了 希望能帮到您。
JeffryLI 发表于 2018-12-24 16:20
您好,问题在于您在表格上绑定的是值本身已经是城市的文本,如果我们拿到城市的文本去键值对在转换,就转换 ...
十分感谢,不过虽然键值对能实现,但是有不用这个方法也能实现下拉列表的方式吗 Alwaysmissing 发表于 2018-12-24 16:35
十分感谢,不过虽然键值对能实现,但是有不用这个方法也能实现下拉列表的方式吗
目前如果是MVVM的模式建议用键值对的方法,不然就像您第一次遇到的错误,是空值。