Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.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# 从按钮获取布局_C#_Xamarin_Xamarin.forms - Fatal编程技术网

C# 从按钮获取布局

C# 从按钮获取布局,c#,xamarin,xamarin.forms,C#,Xamarin,Xamarin.forms,在一个Xamarin表单项目中,我试图从一个点击按钮的事件中获取StackLayout。单击StackLayout时,它可以有1-3个按钮 static void PollButtonClick(object sender, EventArgs e) { Button button = sender as Button; button.IsEnabled = false; } 但我需要能够禁用所有按钮。我试着寻找button.GetLayout之

在一个Xamarin表单项目中,我试图从一个点击按钮的事件中获取StackLayout。单击StackLayout时,它可以有1-3个按钮

static void PollButtonClick(object sender, EventArgs e)
    {
        Button button = sender as Button;
        button.IsEnabled = false;
    }

但我需要能够禁用所有按钮。我试着寻找button.GetLayout之类的东西,这样我就可以在子元素中循环查找所有按钮,但还没有找到任何方法。

您可以使用
元素的
父属性
,然后循环遍历该
元素的
子元素
,跳过
按钮
,如果需要,该按钮就是发送者

例如:

void Handle_Clicked(object sender, System.EventArgs e)
{
    foreach (var child in ((sender as Button).Parent as StackLayout).Children)
    {
        if (child is Button && !child.Equals(sender))
        {
            child.IsEnabled = false;
        }
    }
}

您可以使用
元素
父属性
,然后在该
元素
子元素
之间循环,跳过作为发送者的
按钮(如果需要)

例如:

void Handle_Clicked(object sender, System.EventArgs e)
{
    foreach (var child in ((sender as Button).Parent as StackLayout).Children)
    {
        if (child is Button && !child.Equals(sender))
        {
            child.IsEnabled = false;
        }
    }
}

谢谢!很好用@丹尼尔:没问题,很乐意帮忙,谢谢!很好用@丹尼尔:没问题,很乐意帮忙