【问题标题】:default selection is not working in wpf默认选择在 wpf 中不起作用
【发布时间】:2014-12-09 00:16:05
【问题描述】:

这里我使用 wpf ComboBox 控件并使用数据源绑定它。 但我的组合框无法设置我给出的第一个索引的默认选择 在绑定期间手动进行。在这里,我下面显示的代码可以告诉我如何在组合框中设置默认项。

//Xaml

<ComboBox Height="23" HorizontalAlignment="Left" Margin="142,11,0,0" Name="cmbProductType" VerticalAlignment="Top" Width="180" ItemsSource="{Binding}" />

//代码

private void Window_Loaded(object sender, RoutedEventArgs e)
    {

        ClsControl.GetProductTypeList(cmbProductType);
    }
 public static void GetProductTypeList(ComboBox ddlProductType)//Add By Sandeep On 11-03-2013
    {
        try
        {
            DataTable dtProductType = null;
            try
            {
                ClsDataLayer objDataLayer = new ClsDataLayer();
                dtProductType = objDataLayer.ExecuteDataTable("COMNODE_PROC_GetProductTypeList");
                if (dtProductType != null && dtProductType.Rows.Count > 0)
                {
                    DataRow drCardType = dtProductType.NewRow();
                    drCardType[0] = -1;
                    drCardType[1] = "< -- Select Card Type -- >";
                    ddlProductType.SelectedValue = -1;
                    dtProductType.Rows.InsertAt(drCardType, 0);
                    ddlProductType.ItemsSource = dtProductType.DefaultView;
                    ddlProductType.DisplayMemberPath = "PRODUCT_TYPE";
                    ddlProductType.SelectedValuePath = "PRODUCT_TYPE_ID";
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
        catch
        {
        }
    }

【问题讨论】:

    标签: c# wpf combobox


    【解决方案1】:

    尝试将您的 XAML 更新为:

    <ComboBox Height="23" 
              HorizontalAlignment="Left" 
              Margin="142,11,0,0" 
              Name="cmbProductType" 
              VerticalAlignment="Top" 
              Width="180" 
              ItemsSource="{Binding}" 
              IsSynchronizedWithCurrentItem="True" />
    

    另外,当您选择项目时,请使用 SelectedIndex:

                ddlProductType.SelectedIndex = 0;
                dtProductType.Rows.InsertAt(drCardType, 0);
                ddlProductType.ItemsSource = dtProductType.DefaultView;
                ddlProductType.DisplayMemberPath = "PRODUCT_TYPE";
                ddlProductType.SelectedValuePath = "PRODUCT_TYPE_ID"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多