我可以添加到网格的功能中吗?这样我就可以指定新的网格().BindIsVisible(xx)



下面是一个例子:

var grid3Help = 
new Grid().Bind(Grid.IsVisibleProperty, nameof(HelpIconVisible), source: this)

有没有什么方法可以添加到网格中,使我可以将其更改为:

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

注意,如果可能的话,我希望有一个扩展方法,但我不确定如何处理";来源:this">

如果您可以创建并使用自定义网格(与Grid具有相同的属性(:

public class CustomGrid: Grid
{
public CustomGrid() : this() { }
public void BindIsVisible(string bindobj, object sourceobj = null) {
SetBinding(Grid.IsVisibleProperty, bindobj)
}
}
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;
}
}
}

不要忘记包含名称空间:using ExtensionMethods;

在这两种情况下,您都必须使用nameof()发送参数,否则您可以尝试一些有点复杂的操作。查找传递给函数的变量名

相关内容

最新更新