gpt4 book ai didi

c# - 将自定义命令设置为以编程方式创建的按钮

转载 作者:太空宇宙 更新时间:2023-11-03 20:12:48 27 4
gpt4 key购买 nike

我是 WPF 的新手,正在尝试创建一个从 XML 文件构建自身的界面。新建的界面包含不同的控件,如文本框、标签或按钮。最后一个让我头疼了好几天,因为每个按钮都应该有自己的命令。

按钮的示例 XML 代码:

ID="1001" GroupID="1" Control="Button" Content="Apply" Margin="2" Width="60"

这是定义每个按钮的方法:

public Button Button(XElement xElement, Button newButton)
{
if (xElement.Attribute("Width") != null)
newButton.Width = Convert.ToDouble((xElement.Attribute("Width").Value));

if (xElement.Attribute("Content") != null)
{
string sContent = xElement.Attribute("Content").Value;

//Here gets the button its command
Commands Commands = new Commands();
Commands.setCommand(sContent, newButton);
newButton.Content = sContent;
}
return newButton;
}

内容属性同时命名按钮和功能。

问题:基本上我正在尝试构建一个包含所有可能命令的命令类。每次创建按钮时,setCommand(sContent, newButton) 方法都会扫描 commands 类,并通过 Switch-Case 语句为该按钮设置匹配命令。

现在每次单击按钮时,分配的命令都会触发。但是有可能这样做吗,还是我走错了路?是否有更简单的解决方案来执行此操作,还是我只是缺少命令绑定(bind)的要点?

感谢任何提示。

最佳答案

首先,如果您定义了自己的命令并希望绑定(bind)到 UI 上的按钮,那么它们应该通过 VM 中的公共(public)属性或 UI 的 DataContext 公开。

然后一旦你安排好了,你就可以像下面这样设置按钮上的命令:

Binding binding = new Binding();
binding.Path = new PropertyPath("MyCommand"); //Name of the property in Datacontext
button.SetBinding(Button.CommandProperty, binding);

关于c# - 将自定义命令设置为以编程方式创建的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18952358/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com