如何将组合框中的 SelectedIndex 连接到列表连接字符串?

Posted

技术标签:

【中文标题】如何将组合框中的 SelectedIndex 连接到列表连接字符串?【英文标题】:How to connect SelectedIndex in Combobox to List Connection string? 【发布时间】:2021-10-25 06:25:33 【问题描述】:

如何将 Combobox 中的 SelectedIndex 连接到 List Connection 字符串?

这里是视图的实现:

XAML:

<ComboBox Name="cboxGDAservers" SelectionChanged="cboxGDAservers_SelectionChanged">
    <ComboBoxItem Content="GDA02"/> //If I select this I want it to connect to DKCDCVDCP30
    <ComboBoxItem Content="GDA03"/>
    <ComboBoxItem Content="GDA04"/>
</ComboBox>

背后的代码

private async void GDAworkers(object sender, EventArgs e)

  List<GDAWorkerDataModel> GDAWorkersConsolidated = new List<GDAWorkerDataModel>();
  string[] GDAServerList = new string[]  "DKCDCVDCP30", "DKCDCVDCP31", "DKCDCVDCP32" ...
     try
      
       foreach (var GDAServer in GDAServerList)
         
          List<GDAWorkerDataModel> GDAWorkers = new List<GDAWorkerDataModel>();
          var Result = GDAAcquisitionViewModel.GetWorkers(GDAServer);
          return Result;
          GDAWorkersConsolidated.AddRange(GDAWorkers);
         
       
       catch (Exception ex)
         
           MessageBox.Show(ex.ToString());
         
       DGGDAWorker.ItemsSource = GDAWorkersConsolidated;
      PbarGDAWorker.IsIndeterminate = false;

【问题讨论】:

在 ComboBox 上设置 SelectedValuePath="Content" 并在您的 SelectionChanged 处理程序中查询 cboxGDAservers.SelectedValue social.technet.microsoft.com/wiki/contents/articles/… 当您提出问题时,请尝试正确表述。而且您显示的代码应该最少但可以工作。再说说如何理解“void”方法中的“return Result”?或者,在 XAML 中,您指定了 cboxGDAservers_SelectionChanged 方法,并且您正在显示 GDAworkers 的代码。 ComboxBox 被命名为“cboxGDAservers”,但在您的代码中没有引用该名称。 【参考方案1】:

您可以使用绑定到一个属性,而不是在使用所选项目的主方法中,您可以使用更改后的值:

Xaml

<ComboBox Name="cboxGDAservers"
          SelectedValuePath="Content"
          SelectedValue="Binding Path=ConnectionString">
<ComboBoxItem Content="GDA02"/> //If I select this I want it to connect to DKCDCVDCP30
<ComboBoxItem Content="GDA03"/>
<ComboBoxItem Content="GDA04"/>

并且在后面的代码中->你需要添加一个字符串属性的视图模型:

 public MyClass : INotifyPropertyChanged
 
     private string _connectionString;
     public string ConnectionString
     
        get  return _connectionString; 
        set
        
            if (_connectionString== value) return;
            _connectionString= value;
            OnPropertyChanged("ConnectionString");
        
     
     // here you can use the workers with selected value from the added property

   

【讨论】:

你还需要展示视图模型是如何连接到视图的。

以上是关于如何将组合框中的 SelectedIndex 连接到列表连接字符串?的主要内容,如果未能解决你的问题,请参考以下文章

如何删除组合框中的所有项目? [关闭]

WinForm ComboBox SelectedValue 属性与 SelectedIndex

获取组合框 SelectedIndex 数据并在 SELECT Query 中使用 - VB.net

如何将 mysql 中的数据插入到组合框中?

在数据表或连续表单视图中的表单上,我们如何将第二个组合框中的可能值基于第一个组合框中选择的值?

如何将组合框中的选定元素保存为 PyQt5 中的变量?