我正在尝试使用CheckedComboBoxEdit
和GridView
向WinForms
添加devexpress
。这就是我现在所得到的:
using (var _db = new DB())
{
var isemirleri = _db.IsEmris.AsQueryable();
var oalist = _db.OperasyonAksakliks.AsQueryable();
gcIsEmirleri.DataSource =
(from i in isemirleri
select new {
ID = i.isEmriId,
İşEmriNo = i.isEmriNo,
Aksaklık = string.Join(",",
oalist
.Where(o => o.operasyonId == i.Operasyons.FirstOrDefault().operasyonId)
.Select(o => o.Durus.durusAdi).ToList())
}).ToList();
gvIsEmirleri.BeginUpdate();
//------------------------ THIS LINE -------------------------------------\\
//DataColumn col = new DataColumn("Aksaklık", typeof(string));
//------------------------ THIS LINE -------------------------------------\\
GridColumn column = gvIsEmirleri.Columns["Aksaklık"];
column.Caption = "Aksaklık";
column.Name = "Aksaklık";
gvIsEmirleri.EndUpdate();
RepositoryItemCheckedComboBoxEdit chk= new RepositoryItemCheckedComboBoxEdit();
chk.Items.Clear();
foreach (Durus d in _db.Durus.Where(q => q.aksaklikMi == true))
chk.Items.Add(new ListItem(d.durusId, d.durusAdi));
chk.EditValueChanged += new EventHandler(chk_EditValueChanged);
gvIsEmirleri.Columns["Aksaklık"].ColumnEdit = chk;
}
它成功地显示了当前Operasyons
之间逗号和CheckedComboBoxEdit
之间的逗号可以在网格上看到(它显示了单元格右侧的小按钮)。
但是,单击单元格时,元素列表不会显示。我调试了该项目并发现chk
已正确设置,并保留了Items
。
如果我取消评论标记为THIS LINE
的行并且不将Aksaklık
添加到gcIsEmirleri.DataSource
,则会成功添加列表并且可以正确使用,我可以添加检查了相关数据库表中的元素,但是我看不到视图中的更改。我的意思是我无法看到所选元素,如字符串组合或在行中检查。
我做错了什么或者我还能做些什么才能让它发挥作用?
答案 0 :(得分:0)
必须创建一列Aksaklık
。添加新的GridColumn
并分配DataSource
会导致程序无法正常运行。
所以我在分配名为DataSource
的{{1}}时创建了一个新列,将其设置为false。之后我添加了TempColumn
并按照问题中的代码执行操作。之后我使用GridColumn
并从UnboundType
获取所需的字符串:
TempColumn