Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检查是否通过绑定或分配填充了DataGrid ItemSource_C#_Wpf_Data Binding_Datagrid - Fatal编程技术网

C# 检查是否通过绑定或分配填充了DataGrid ItemSource

C# 检查是否通过绑定或分配填充了DataGrid ItemSource,c#,wpf,data-binding,datagrid,C#,Wpf,Data Binding,Datagrid,有没有办法(在代码中)确定Datagrid的ItemSource是通过绑定设置的,还是有赋值 绑定: <DataGrid x:Name="MyGrid" ItemsSource="{Binding Foo}"/> 任务: <DataGrid x:Name="MyGrid" /> MyGrid.ItemsSource=新列表{1,2,3}; [[1]: 此图显示了如何得出结论,即网格正在填充所需的值。调试器中的MyGird.Items.Results视图值也会显

有没有办法(在代码中)确定Datagrid的ItemSource是通过绑定设置的,还是有赋值

绑定:

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

任务:

<DataGrid x:Name="MyGrid" />

MyGrid.ItemsSource=新列表{1,2,3};
[[1]:

此图显示了如何得出结论,即网格正在填充所需的值。调试器中的MyGird.Items.Results视图值也会显示实际值。在您的情况下,Foo变量应该是int的列表。下面给出了绑定Foo的正确方法

在代码隐藏中:

public List<int> Foo { get; set; }

        public MainWindow()
        {
            InitializeComponent();
            Foo = new List<int>() { 1, 2, 3 };
            MyGrid.ItemsSource = Foo;
        }
公共列表Foo{get;set;}
公共主窗口()
{
初始化组件();
Foo=新列表(){1,2,3};
MyGrid.ItemsSource=Foo;
}
在XAML中

<Grid>
        <DataGrid x:Name="MyGrid">
            <DataGrid.Columns>
                <DataGridTextColumn Binding="{Binding}"/>
            </DataGrid.Columns>
        </DataGrid>
    </Grid>

有一种框架方法可以检测绑定:

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

<Grid>
        <DataGrid x:Name="MyGrid">
            <DataGrid.Columns>
                <DataGridTextColumn Binding="{Binding}"/>
            </DataGrid.Columns>
        </DataGrid>
    </Grid>
var binding = BindingOperations.GetBindingExpression(MyGrid, DataGrid.ItemsSourceProperty);
string result = (binding == null) ? "assignment" : "binding";