コンボボックスを別のコンボボックスにバインドする際に問題があります。私は最初のコンボボックスから2番目のコンボボックスを開始するメソッドにパラメータ(id)を動的に渡そうとしています。たとえば、最初のコンボボックスで最初の項目を選択した場合、2番目のコンボボックスは最初のコンボボックスから選択したパラメータで初期化されます。別のコンボボックスにコンボボックスをバインドする
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; }
}
が、それは可能ですか?すべての回答ありがとう!
「不明です。 2番目のComboBoxには何を表示する必要がありますか? ID、名前... !! – Amine
いくつかのITサービスがあります。すべてのITサービスにはいくつかの指標があります。最初のコンボボックスITサービスで選択し、GetMetricName(SelectedService)メソッドに渡して、選択された(最初のコンボボックスで)ITサービスの2番目のコンボボックスメトリックに表示する必要があります。 – Eluvium
表示名ですが、選択した値はIdでなければなりません – Eluvium