下面是一个例子:
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()
发送参数,否则您可以尝试一些有点复杂的操作。查找传递给函数的变量名