Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.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# 我可以添加到Grid的功能中,以便指定new Grid()。BindIsVisible(xx);_C#_Xamarin_Xamarin.forms_Data Binding - Fatal编程技术网

C# 我可以添加到Grid的功能中,以便指定new Grid()。BindIsVisible(xx);

C# 我可以添加到Grid的功能中,以便指定new Grid()。BindIsVisible(xx);,c#,xamarin,xamarin.forms,data-binding,C#,Xamarin,Xamarin.forms,Data Binding,以下是一个例子: var grid3Help = new Grid().Bind(Grid.IsVisibleProperty, nameof(HelpIconVisible), source: this) 是否有一些方法可以添加到网格中,使我可以将其更改为: var grid3Help = new Grid().BindIsVisible(HelpIconVisible, source: this) 请注意,如果可能,我希望有一个扩展方法,但如果您可以创建并使用自定义网格(与网格具

以下是一个例子:

var grid3Help = 
   new Grid().Bind(Grid.IsVisibleProperty, nameof(HelpIconVisible), source: this)
是否有一些方法可以添加到网格中,使我可以将其更改为:

var grid3Help = new Grid().BindIsVisible(HelpIconVisible, source: this)

请注意,如果可能,我希望有一个扩展方法,但如果您可以创建并使用自定义网格(与
网格具有相同的属性),我不确定如何处理“source:this”的设置:

使用扩展方法:

namespace ExtensionMethods
{
    public static class MyExtensions
    {
        public static void BindIsVisible(this Grid grid, string boundproperty)
        {
            grid.SetBinding(VisualElement.IsVisibleProperty, boundproperty);
            return;
        }
    }
}
不要忘记包含名称空间:
使用ExtensionMethods


在这两种情况下,您都必须使用
nameof()
发送参数,否则您可以尝试一些有点复杂的方法

您是否正在寻找一种可以实现这一点的扩展方法?是的,如果可能的话。您知道如何使用扩展方法实现这一点吗?@Alan2我不明白您所说的源代码是什么意思?您是否也对Bind()的存在或定义感到困惑?我使用了SetBinding(),但如果需要,您可以更改它以适应现有代码。
var grid3Help = new CustomGrid().BindIsVisible(nameof(HelpIconVisible), source: this)
namespace ExtensionMethods
{
    public static class MyExtensions
    {
        public static void BindIsVisible(this Grid grid, string boundproperty)
        {
            grid.SetBinding(VisualElement.IsVisibleProperty, boundproperty);
            return;
        }
    }
}