【问题标题】:how to change multiple labels based on their name如何根据名称更改多个标签
【发布时间】:2016-03-18 12:12:09
【问题描述】:

我有一个名为 cb1,cb2,cb3 等的组合框列表,以及每个组合框旁边的标签 lb1 lb2 lb3 。组合框每个包含 3 个值,低中和高,每次选择组合框项目时,组合框旁边都有一个标签显示“值”,所以“低”显示 25,中显示 50 等。我设法拥有一个控制所有组合框的例程,如下所示:

private void comboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    ComboBox cb = sender as ComboBox;
    string qr = cb.SelectedItem.ToString();
    switch (qr) {
    case "low":
        lb11.Content = "25";
    break;
    case "medium":
        lb11.Content = "50";
    break;
    case "high":
        lb11.Content = "75";
    break;
}

我需要根据组合框名称更改它旁边的标签,例如组合名为cb22,我需要更改名为lb22等的标签。

【问题讨论】:

标签: c# wpf


【解决方案1】:

在您的情况下,我会使用 BindingValueConverter,因为在后面的代码中处理 UI 内容与 WPF 的想法背道而驰。这 目的是将UI逻辑与codebehind分开。

如需了解更多信息,请查看 SO,例如:

  1. WPF Databinding
  2. WPF Combobox with ItemsSource - What path do I set to access this databinding?

【讨论】:

    【解决方案2】:

    已解决,非常感谢。我不知道它是否是处理它的正确方法,但我只是将标签声明为:

    var lb = (Label)this.FindName("label" + cb.Name);

    然后我可以使用 lb.content 更改开关盒中的值

    【讨论】:

    • @frankieht 请记住,这是一种解决方案,但不是您应该使用WPF 的工作方式。但是很好用:)
    猜你喜欢
    • 1970-01-01
    • 2018-11-22
    • 2011-03-27
    • 1970-01-01
    • 1970-01-01
    • 2020-05-05
    • 1970-01-01
    • 2017-01-12
    • 2011-07-14
    相关资源
    最近更新 更多