【问题标题】:Is there an easy way to go about creating a "tab-sensitive" button in WPF?有没有一种简单的方法可以在 WPF 中创建“标签敏感”按钮?
【发布时间】:2023-03-19 13:52:01
【问题描述】:

假设我有 2 个要设置参数的选项卡和两个 Buttons,一个用于确定过程并进行数学运算,另一个将用户输入的值清除为默认值。

我想做的是让 Clear Button 对当前处于活动状态的任何选项卡敏感。因此,如果我在选项卡 1 中并按“清除”,则只有选项卡 1 的值恢复为默认值。有没有简单的方法可以做到这一点?

我也意识到在每个标签上都有一个明确的Button 可能更容易做到,但我不认为它看起来那么好。虽然我可能会考虑这一点,或者如果没有干净的替代方案,我可能只是重置所有值。

【问题讨论】:

  • 您使用的是哪种架构?如果您使用 MVVM 和命令,与在后面的代码中使用诸如 Click 处理程序之类的东西来进行清除,答案会有很大不同。选项卡项是绑定到单个数据对象、集合还是根本不绑定?
  • 嗯,我不敢说实话。我现在只是用 XAML 插入东西,所以我猜它们没有绑定?

标签: c# wpf button wpf-controls


【解决方案1】:

您为什么不简单地检查一下当前从代码隐藏中选择了哪个选项卡?

我上传了一个工作示例 here

但这应该会给你一个整体的想法

    private void bOK_Click(object sender, RoutedEventArgs e)
    {
        switch (tabControl1.SelectedIndex)
        {
            case 0: Tab0_OK(); break;
            case 1: Tab1_OK(); break;
        }
    }

    private void bClear_Click(object sender, RoutedEventArgs e)
    {
        switch (tabControl1.SelectedIndex)
        {
            case 0: Tab0_Clear(); break;
            case 1: Tab1_Clear(); break;
        }
    }

问候,
米希尔·戈卡尼

【讨论】:

    【解决方案2】:

    您可以使用以下命令检查当前选择了哪个选项卡。

    如果 DirectCast(DirectCast(YourtabCtrl, System.Windows.Forms.TabControl).SelectedTab,Sytemtem.Windows.Forms.TabPage).Name="Tab1" 那么 '清除控制 别的 '清除控制 结束如果

    希望这会有所帮助。

    谢谢, 贾格德夫·乔桑

    【讨论】:

      猜你喜欢
      • 2010-09-06
      • 1970-01-01
      • 2014-01-10
      • 2012-10-27
      • 2022-01-11
      • 1970-01-01
      • 1970-01-01
      • 2011-02-16
      相关资源
      最近更新 更多