WPF的C1DataGrid根据当前行实时选的值控制另外一列行是否可编辑

之前都不是在表格里面通过列的控制直接使用属性触发事件就可以了,但是在C1DataGrid表格中动态添加一列,然后去选择一列的值,根据这列的值去控制另外的一个列的是否可编辑,放在表格外面很容易实现,可放在表格内,却麻烦一点,

通过行业名称选择事件cb_TradeName_SelectedValueChanged触发

private void cb_TradeName_SelectedValueChanged(object sender, PropertyChangedEventArgs<object> e)

{

var _vm = DataContext as BatchSingleInquiryListFormVM;

if (null == _vm) return;

if (sender != null && ((C1ComboBox)sender).SelectedValue != null)

{

_vm.TradeID = ((C1ComboBox)sender).SelectedValue.ToString();

}

//判断是否需要另一个列的编辑,ListProductStyleIsIsEditable这个是vm的临时属性,用于控制列的是否可编辑,之前说过如果是行加载事件,可以在对象里面写入是否只读、可见、可编辑属性,但是这个是加载后造作触发的,

使用的是这种写法

IsEditable="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}},Path=DataContext.ListProductStyleIsIsEditable,Mode=TwoWay}"

if (_vm.HandelIndustryCategory(Convert.ToString(e.NewValue)))

{

TradeComboBox.IsEditable = false;

selectedBatchProductStyle.IsEditable = false;

_vm.ListProductStyleIsIsEditable = false;

}

else

{

_vm.ListProductStyleIsIsEditable = true;

TradeComboBox.IsEditable = false;

selectedBatchProductStyle.IsEditable = true;

// InquiryInfoGrid.Columns["TradeName"].IsEditable = true;//C1DataGrid不支持,flexGrid可以,如果是flexGrid可以尝试这种写法,我这是整列控制的,批量控制

}

}

相关推荐
heimeiyingwang13 小时前
【架构实战】日志体系ELK:集中化日志管理实践
elk·架构·wpf
CPU不够了14 小时前
WPF 多选下拉+搜索过滤_wpf下拉选项增加搜索
wpf
FuckPatience14 小时前
WPF 列表控件自动拉伸子元素的宽度
wpf
LCG元14 小时前
【Go后端开发】从 0 到生产级:高性能分布式网关全实现 + 接口限流熔断降级实战
分布式·golang·wpf
枫叶林FYL1 天前
项目九:异步高性能爬虫与数据采集中枢 —— 基于 Crawl<sub>4</sub>AI 与 Playwright 的现代化数据采集平台 项目总览
爬虫·python·深度学习·wpf
她说彩礼65万1 天前
WPF 多值转换器
wpf
无心水2 天前
【分布式利器:金融级】金融级分布式架构开源框架全景解读
人工智能·分布式·金融·架构·开源·wpf·金融级框架
她说彩礼65万2 天前
WPF 转换器
wpf
WPF工业上位机2 天前
匠心研智造,同心赴新程-WPF硬件通讯之串口&Socket
wpf
爱炸薯条的小朋友3 天前
C#由窗体原子表溢出造成的软件闪退,根本原因补充
开发语言·c#·wpf