Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.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中的组合框_C#_Wpf_Datagrid - Fatal编程技术网

C# 如何以编程方式访问Datagrid中的组合框

C# 如何以编程方式访问Datagrid中的组合框,c#,wpf,datagrid,C#,Wpf,Datagrid,我在XML中添加了一个DataGrid,如下所示。现在,如何以编程方式访问名为Combo1的ComboBox?我无法使用名称Combo1正常访问它。我希望能够检索它的值,或者更改itemssource等 您应该能够在这里找到您需要的东西。然而,我要说的是,这样做不是最好的做法 private childItem FindVisualChild(DependencyObject obj) where-childItem:DependencyObject { for(int i=0;i

我在XML中添加了一个
DataGrid
,如下所示。现在,如何以编程方式访问名为
Combo1
ComboBox
?我无法使用名称
Combo1
正常访问它。我希望能够检索它的值,或者更改itemssource等


您应该能够在这里找到您需要的东西。然而,我要说的是,这样做不是最好的做法

private childItem FindVisualChild(DependencyObject obj)
where-childItem:DependencyObject
{
for(int i=0;i
您可以尝试使用以下内容:

    public static IEnumerable<T> FindVisualChildren<T>(DependencyObject depObj) where T :       DependencyObject
{
    if (depObj != null)
    {
        for (int i = 0; i < VisualTreeHelper.GetChildrenCount(depObj); i++)
        {
            DependencyObject child = VisualTreeHelper.GetChild(depObj, i);
            if (child != null && child is T)
            {
                yield return (T)child;
            }

            foreach (T childOfChild in FindVisualChildren<T>(child))
            {
                yield return childOfChild;
            }
        }
    }
}
公共静态IEnumerable FindVisualChildren(DependencyObject depObj),其中T:DependencyObject
{
if(depObj!=null)
{
for(int i=0;i
但我建议您阅读更多关于MVVM模式的内容

    public static IEnumerable<T> FindVisualChildren<T>(DependencyObject depObj) where T :       DependencyObject
{
    if (depObj != null)
    {
        for (int i = 0; i < VisualTreeHelper.GetChildrenCount(depObj); i++)
        {
            DependencyObject child = VisualTreeHelper.GetChild(depObj, i);
            if (child != null && child is T)
            {
                yield return (T)child;
            }

            foreach (T childOfChild in FindVisualChildren<T>(child))
            {
                yield return childOfChild;
            }
        }
    }
}