【发布时间】:2016-08-23 06:57:06
【问题描述】:
我在将组合框绑定到另一个组合框时遇到问题。我正在尝试将参数(id)从第一个组合框动态传递给启动第二个组合框的方法。例如,如果我在第一个组合框中选择了第一项,那么第二个组合框将使用从第一个组合框中选择的参数进行初始化。
XAML:
<ComboBox Name="ItServiceCmbox" ItemsSource="{Binding ItServiceMetricsNames}" DisplayMemberPath="ServiceName" SelectedValuePath="ServiceId" />
<ComboBox Name="MetricCmbox" ItemsSource="{Binding SelectedItem.MetricId, ElementName=ItServiceCmbox}" DisplayMemberPath="MetricName" SelectedValuePath="MetricId"/>
C#:
public partial class MainWindow : Window
{
readonly MetricsValuesHelper _metricsValuesHelper = new MetricsValuesHelper(new Repository());
public static int SelectedService;
public static int SelectedMetric;
public ObservableCollection<ItServiceMetricsNames> ItServiceMetricsNames { get; set; }
public MainWindow()
{
InitializeComponent();
this.DataContext = this;
SelectedService = Convert.ToInt32(ItServiceCmbox.SelectedItem);
ItServiceMetricsNames = new ObservableCollection<ItServiceMetricsNames>();
ItServiceMetricsNames.Add(new ItServiceMetricsNames()
{
ServiceId = _metricsValuesHelper.GetServiceId(),
ServiceName = _metricsValuesHelper.GetServiceName(),
MetricId = _metricsValuesHelper.GetMetricId(SelectedService),
MetricName = _metricsValuesHelper.GetMetricName(SelectedService)
});
}
}
ItServiceMetricsNames 类:
public class ItServiceMetricsNames
{
public List<int> ServiceId { get; set; }
public List<string> ServiceName { get; set; }
public List<int> MetricId { get; set; }
public List<string> MetricName { get; set; }
}
有可能吗?感谢您的任何回答!
【问题讨论】:
-
不清楚。第二个 ComboBox 必须显示什么?身份证、姓名……!!
-
有多种 IT 服务。每个 IT 服务都有一些指标。我必须在第一个组合框中选择 IT 服务,并将其传递给 GetMetricName(SelectedService) 方法,以便在第二个组合框中显示所选(在第一个组合框中)IT 服务的指标。
-
显示名称,但选择的值必须是Id