【问题标题】:XAML - Way to find which button is clickedXAML - 查找单击了哪个按钮的方法
【发布时间】:2013-03-26 06:03:37
【问题描述】:

我正在开发 Windows 应用商店应用程序。

我正在从 C# 代码隐藏文件中动态加载 XAML 代码。所以,我无法向按钮添加点击事件。

有没有什么方法可以在没有点击事件的情况下使用按钮名称知道点击了哪个按钮?

【问题讨论】:

    标签: c# xaml button dynamic


    【解决方案1】:

    您应该研究用于 WPF 开发的 MVVMCommand 模式。 click 事件处理程序是过时的 Windows 窗体编程。在 WPF 中,命令模式由ICommand 接口表示。每个按钮都有一个 Command 属性,您可以在其中绑定一个命令对象。

    【讨论】:

      【解决方案2】:

      您如何动态加载 XAML 代码?您可以动态加载 XAML,定位所有按钮实例,并为“Tapped”事件添加事件侦听器。

      var grid = Xaml.LoadXaml("<Grid><Button x:Name='BLAH' /><Button x:Name='BLAH2'></Grid");
      foreach(var button in VisualHelper.FindVIsualCHildren<Button>(grid))
        button.Tapped += delegate(object sender, TappedEventArgs a) 
        { 
              var btn = sender as BUtton; 
         }
      

      您可以从这个工具包中找到有用的东西:http://winrtxamltoolkit.codeplex.com/

      【讨论】:

      • 我正在像这样动态添加 Xaml 代码。 UIElement 树 = (UIElement)XamlReader.Load(xaml); QRGrid.Children.Add(树);我也可以将此代码用于 Clicked 事件吗?
      • 是的。它可以用于任何事件。
      猜你喜欢
      • 2018-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多