Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.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# WPF:如何将数据分配给位于Windows.Resources中的控件的DataContext?_C#_Wpf_Wpfdatagrid - Fatal编程技术网

C# WPF:如何将数据分配给位于Windows.Resources中的控件的DataContext?

C# WPF:如何将数据分配给位于Windows.Resources中的控件的DataContext?,c#,wpf,wpfdatagrid,C#,Wpf,Wpfdatagrid,我在画布中有一个数据网格。数据列表在代码隐藏中分配给DataGrid的DataContext。现在我尝试将画布移动到Windows.Resources,以便在需要时从控件创建多个实例。但是,当将画布移动到资源时,它不再从代码隐藏中被识别。知道如何解决这个问题吗?您应该能够将数据列表绑定到xaml中的DataContext。尽量不要在代码隐藏中这样做。您可以使用方法从窗口资源获取datagrid 将x:Key交给你的数据网格(比如说x:Key=“MyDataGrid”),现在在代码隐藏中,你可以像

我在画布中有一个数据网格。数据列表在代码隐藏中分配给DataGrid的DataContext。现在我尝试将画布移动到Windows.Resources,以便在需要时从控件创建多个实例。但是,当将画布移动到资源时,它不再从代码隐藏中被识别。知道如何解决这个问题吗?

您应该能够将数据列表绑定到xaml中的DataContext。尽量不要在代码隐藏中这样做。

您可以使用方法从窗口资源获取datagrid

x:Key
交给你的数据网格(比如说
x:Key=“MyDataGrid”
),现在在代码隐藏中,你可以像这样得到它-

DataGrid dataGrid = (DataGrid)FindResource("MyDataGrid");

回答得很好。但是,作为一种替代方法,我最终移动了画布控件,使其在主网格中的可见性崩溃,或者换句话说,在预期控件将来将在其中使用的任何网格之外。现在我可以控制Canvas控件,而无需重复任何代码。可能不是最好的解决方案,但只是另一个可行的替代方案

可以将控件移动到主网格中的新网格中,这样可以很容易地在文档大纲窗口中找到它