如何根据名称更改多个标签

时间:2016-03-18 12:12:10

标签: c# wpf

我有一个名为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的标签等。

2 个答案:

答案 0 :(得分:1)

在您的情况下,我会将BindingValueConverter一起使用,因为处理后面代码中的UI内容再次是WPF的想法。该 目标是将UI逻辑与codebehind分开。

有关更多信息,请查看SO,例如:

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

答案 1 :(得分:0)

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

  

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

然后我可以使用lb.content

更改切换案例中的值