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可以尝试这种写法,我这是整列控制的,批量控制

}

}

相关推荐
七夜zippoe5 小时前
DolphinDB在工业物联网中的优势
物联网·wpf·工业物联网·优势·dolphindb
heimeiyingwang8 小时前
【架构实战】观察者模式在分布式系统中的应用
观察者模式·架构·wpf
bugcome_com10 小时前
WPF + Microsoft.ToolKit.Mvvm 技术指南与实战项目
microsoft·wpf
武藤一雄1 天前
WPF中逻辑树(Logical Tree)与可视化树(Visual Tree)到底是什么
microsoft·c#·.net·wpf·.netcore
炸炸鱼.1 天前
ELK 企业级日志分析系统完整部署手册
elk·wpf
Mr_pyx2 天前
微服务可观测性实战:分布式链路追踪从入门到精通
wpf
c#上位机3 天前
wpf附加事件
wpf
玖笙&3 天前
✨WPF编程进阶【9.1】:WPF资源完全指南(附源码)
c++·c#·wpf·visual studio
想你依然心痛3 天前
HarmonyOS 6(API 23)分布式实战:基于悬浮导航与沉浸光感的“光影协创“跨设备白板系统
分布式·wpf·harmonyos·悬浮导航·沉浸光感
c#上位机5 天前
wpf路由事件
wpf