0

我有一个家伙,我想从 wpf Combobox 中选择一个值

我有下一个代码:

    private void CargarUnidades()
    {
        List<Unidades> unidades;

        using (var sesion = NHibernateFluentConfiguracion.AbrirSesion())
        {
            using (var transaccion = sesion.BeginTransaction())
            {
                unidades = Unidades.ObtenerTodaslasUnidades();
            }
        }


        cmbUnidad.ItemsSource = unidades;

        cmbUnidad.DisplayMemberPath = "Nombre";
        cmbUnidad.SelectedValuePath = "Nombre";

    }

在我向 unidades 充电之后

            CargarUnidades(); //Charge all unidades in the combobox

            Articulos c = Articulos.Obtener(id_articulo); 
            //Get Articulo from the database for the id


            //In the last query I get the unidad same that exists in cmbUnidad
            //previusly charge

            //I assing the value but in the combobox doesnt appear selected, 
            //appear nothing
            cmbUnidad.SelectedValue = c.id_unidad;
            txtCodigo.Text = c.Codigo;
            .
            .
            .
            .

我如何从组合框中选择一个值???注意:我是 WPF 的新手,我的英语不好 je je je

感谢Firo的回答,我修改了代码,这就是结果

cmbUnidad.Items.Cast<Unidades>().FirstOrDefault(u => u.id_unidad == c.id_unidad.id_unidad);  

我不知道这是否是最好的方法,但它的功能性:P

4

1 回答 1

0

selectedValue 必须与列表中的值之一相等(使用 Equals),因此分配对象而不是 id,因为控件不知道如何根据 id 进行选择

cmbUnidad.SelectedValue = c;

更新:因为Articulos只有 unidades 的 id 而不是参考(我会映射),所以你必须搜索它。

cmbUnidad.SelectedValue = cmbUnidad.Items.Cast<Unidades>().FirstOrDefault(u => u.Nombre == c.id_unidad);
于 2012-04-26T11:11:18.313 回答