wpfc#静态组合框选择需要更新进行DB调用的第二个组合框

本文关键字:组合 DB 调用 第二个 静态 选择 wpfc# 更新 | 更新日期: 2023-09-27 18:25:00

我是WPF的新手,使用DevExpress MVVM,我有一个静态组合框,当用户选择一天时,我想通过传递一个int day并调用DB来更新第二个组合框,以使用基于当天的路由刷新该组合框。这是我的:

-->

    <Label Content="Route:" Grid.Column="2" Grid.Row="1" Height="28" HorizontalAlignment="Left" Margin="9,60,0,0" Name="lblRoute" VerticalAlignment="Top" />
    <ComboBox Grid.Column="2" Grid.Row="1" Height="23" HorizontalAlignment="Left" Margin="127,65,0,0" Name="cboRoute" VerticalAlignment="Top" Width="120" 
                DataContext="{Binding}" ItemsSource="{Binding Path=RouteList}"  DisplayMemberPath="{Binding RouteName}" SelectedValue="{Binding RouteID}" Grid.ColumnSpan="2" 
              IsSynchronizedWithCurrentItem="true"/>

ViewModel:

 public ObservableCollection<RouteTest> BindRouteComboBox2(int day)
     {
          mgr = new SRMSRailManagerBLL();
        mgr.OpenConnection(ConfigurationManager.ConnectionStrings["SRMSSqlProvider"].ConnectionString);
        //might not want to pass dataset
        _routeDS = mgr.getRoutesForCombo(day);
        _routeDV = _routeDS.Tables[0].DefaultView;
        //cboRoute.ItemsSource = ds.Tables[0].DefaultView;
        //cboRoute.DisplayMemberPath = ds.Tables[0].Columns["RouteName"].ToString();
        //cboRoute.SelectedValuePath = ds.Tables[0].Columns["RouteID"].ToString();
        _routeList = new ObservableCollection<RouteTest>();
        foreach (DataRow row in _routeDV.Table.Rows)
        {
            RouteTest r = new RouteTest(Convert.ToInt32(row.ItemArray[0]), row.ItemArray[1].ToString());
            _routeList.Add(r);
        }

        mgr.CloseConnection();
         return _routeList;

当我单击第一个组合框时,我会在_SelectionChanged()中填充"Monday",我想要的是Tag值"1",这样我就可以传递到BindRouteComboBox(day)过程来更新第二个组合框,使其仅显示第1天的路线,而不是DB表中的每条路线。这应该很简单,我一定错过了一些简单的东西。

谢谢,

wpfc#静态组合框选择需要更新进行DB调用的第二个组合框

Hi使用SelectedValue而不是SelectedValuePath

string temp = (sender as ComboBox).SelectedValue.ToString();