C1 WPF FlexGrid 后台设置列类型
如何在后台为表格的列设置列类型,winform的有个ComboList方法,WPF的如何处理?例如新增一行数据,第二列的类型是ComboBox,如何后台设置。如何绑定数据。 回复 1楼shayne的帖子
可以通过 C1.WPF.FlexGrid.C1FlexComboBox 来实现,请参考 Demo:
本帖最后由 szpzr 于 2024-3-15 09:07 编辑
版主,示例代码可以在FlexGrid1_PreviewTextInput事件中如何实现?
var edit = e.Editor as System.Windows.FrameworkElement; 的 edit 如何获取?
另外:FlexGrid1_PrepareCellForEdit事件中单元格输入内容时能自动展开下拉列表吗?
用语句:cmb.IsDropDownEnabled = true;
cmb.IsDroppedDown = true;
无法实现。
谢谢!
PreviewTextInput事件的args参数中本身就没有Editor属性的。所以没法获取
你现在具体是什么需求?,wpf中最简单的方式应该是你直接在xaml中给列来设置template
还是想使用 ComboBox实现模糊查询,使用模板没有得到预期效果,想换个方式试试,用语句:cmb.IsDropDownEnabled = true;
cmb.IsDroppedDown = true;下拉列表无法展开的原因在哪里? 你可以在获取焦点事件中加上代码
private void Grid1_PrepareCellForEdit_1(object sender, C1.WPF.FlexGrid.CellEditEventArgs e)
{
if ((e.Column > 1))
{
Border _border;
var edit = e.Editor as System.Windows.FrameworkElement;
_border = edit as System.Windows.Controls.Border;
C1.WPF.FlexGrid.C1FlexComboBox cmb = ((C1.WPF.FlexGrid.C1FlexComboBox)(_border.Child));
cmb.DropDownItems = new string[] { "Assigned", "Remove", "- -" };
cmb.IsEditable = false;
cmb.GotFocus += (s, ee) =>
{
if (!cmb.IsDroppedDown)
{
cmb.IsDroppedDown = true;
}
};
cmb.LostFocus += (s, ee) =>
{
if (cmb.IsDroppedDown)
{
cmb.IsDroppedDown = false;
}
};
}
} 好的,谢谢
后面不能使用 var str = FlexGrid1;获取选中值,该如何获取? 没有明白你的意思,是在什么时候无法获取,你是用上面的代码会报错吗? 本帖最后由 szpzr 于 2024-3-16 09:41 编辑
C1.WPF.FlexGrid.C1FlexComboBox cmb = ((C1.WPF.FlexGrid.C1FlexComboBox)(_border.Child));语句后使用 string txt= cmb.Text; 无法获取输入值。
页:
[1]
2