我是 WPF 的新手,使用 DevExpress MVVM,我有一个静态组合框,当用户选择一天时,我想通过传递一个 int 日并进行数据库调用以刷新该组合框来更新第二个组合框,路由基于关闭那天。这是我所拥有的:
-->
<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"/>
视图模型:
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() 中填充了“星期一”,我想要的是“1”的标记值,以便我可以传递给我的 BindRouteComboBox(day) 过程来更新第二个组合框只显示第 1 天的路线,而不是我的数据库表中的每条路线。这应该很简单,我必须在这里遗漏一些简单的东西。
谢谢,