首页 > 解决方案 > 检查是否通过绑定或赋值填充了 DataGrid ItemSource

问题描述

有没有办法找出(在代码中)Datagrid 的 ItemSource 是否是通过绑定设置的,或者是否有分配?

捆绑:

<DataGrid x:Name="MyGrid" ItemsSource="{Binding Foo}"/>

任务:

<DataGrid x:Name="MyGrid" />
MyGrid.ItemsSource = new List<int> { 1, 2, 3 };

标签: c#wpfdata-bindingdatagrid

解决方案


有一个框架方法来检测绑定:BindingOperations.GetBindingExpression

返回与给定属性关联的 BindingExpression 对象,如果不存在则返回 null

var binding = BindingOperations.GetBindingExpression(MyGrid, DataGrid.ItemsSourceProperty);
string result = (binding == null) ? "assignment" : "binding";

推荐阅读