c# - 检查是否通过绑定或赋值填充了 DataGrid ItemSource
问题描述
有没有办法找出(在代码中)Datagrid 的 ItemSource 是否是通过绑定设置的,或者是否有分配?
捆绑:
<DataGrid x:Name="MyGrid" ItemsSource="{Binding Foo}"/>
任务:
<DataGrid x:Name="MyGrid" />
MyGrid.ItemsSource = new List<int> { 1, 2, 3 };
解决方案
有一个框架方法来检测绑定:BindingOperations.GetBindingExpression
返回与给定属性关联的 BindingExpression 对象,如果不存在则返回 null
var binding = BindingOperations.GetBindingExpression(MyGrid, DataGrid.ItemsSourceProperty);
string result = (binding == null) ? "assignment" : "binding";
推荐阅读
- javascript - Next.js / JSX 中的 JavaScript 函数语法?
- windows - Power shell Get-Counter:没有应用程序与此操作的指定文件关联
- android - 在 Android 中实现 Stories 功能
- tomcat - 我想在 Intellij Ultimate IDE 中自定义 tomcat 设置
- android - RecyclerView --SelectionTracker 将选择大小限制为 10 个项目
- cytoscape - Cytoscape 不允许我将表格上传到网络集合,唯一的选择是未分配的表格。有谁知道如何解决这个问题?
- sql-server - SQL 查询 - CONVERT datetime to date 不起作用
- javascript - 尝试修复学校项目的电子邮件验证
- powershell - 在powershell中提取两个特殊字符之间的字符串
- java - 使用 JUnit 5 测试自定义约束注解