none
ComboBox 绑定问题 RRS feed

  • 问题

  •     public class User
        {

         public int ID { get; set; }

         public string Name { get; set; }

         public int MdStatusID { get; set; }
       }

       public  class MdStatus
        {
        
         public int ID { get; set; }
     
         public string Name { get; set; }
        }

    //模型

    用户(User)中有个状态(MdStatus)对象标记用户是"正常"还是"冻结".我想让用户选择是这个用户是"正常"还是"冻结",并更新MdStatusID.

    但是我绑定了状态之后提交,数据源并没有更新MdStatusID.只有Name更新了数据源. 求帮助......

    //xaml

    <Grid Name="ecDetailGrid">

                <Label  Content="名称:" />
                <TextBox>
                    <TextBox.Text>
                        <Binding Path="Name"/>
                    </TextBox.Text>
                </TextBox>
                
                <Label Content="状态:"/>
                <ComboBox x:Name="ecMdStatus">
                </ComboBox>

    </Grid>

    //c#

    ecDetailGrid.DataContext = user;//user数据源

    ecMdStatus.ItemsSource = TheStatusList; //TheStatusList是一个集合,有正常和冻结两个MdStatus
    ecMdStatus.SelectedValuePath = "ID";
    ecMdStatus.DisplayMemberPath = "Name";
    ecMdStatus.SelectedIndex = 0;



               
    2012年11月1日 8:58

答案

  • 这个我觉得是你绑定数据源的问题。

    比如你可以用DataGrid(或者ItemsControl)去显示一个User集合,然后每一个列显示的是Name,Id,MdStatusID。然后你的这个ComboBox绑定的是固定User的MdStatusID属性,然后通过ComboBox去改变。

    要不然你的ComboBox首先要更换要改变的是哪个User,然后再改变这个User的MdStatusID属性。


    Sheldon _Xiao[MSFT]
    MSDN Community Support | Feedback to us
    Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2012年11月6日 7:40
    版主