分享

datagrid +combox

 贾朋亮博客 2013-08-06
 <DataGrid Name="grid_UserList" ItemsSource="{Binding ModelList}" AutoGenerateColumns="False" CanUserAddRows="False">
            <DataGrid.Columns>
                <DataGridTextColumn Header="姓名" Binding="{Binding UserName}"  Width="*" IsReadOnly="True" />
                <DataGridTextColumn Header="ID" Binding="{Binding UserId}"  Width="100" IsReadOnly="True" />
                <DataGridTemplateColumn Header="职业" Width="*" >
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <StackPanel>
                                <ComboBox x:Name="cb_Type"
                                                      ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}, Path=DataContext.TypeList}"
                                                      DisplayMemberPath="DisplayName"
                                                      SelectedValue="{Binding UserType, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
                                                      SelectedValuePath="EnumValue"/>
                                <!--为了看出改变Combox时,改变了当前选中实体的UserType属性,通过下面的TextBlock的Text的绑定来监视-->
                                <TextBlock Text="{Binding UserType}"></TextBlock>
                            </StackPanel>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>
            </DataGrid.Columns>
        </DataGrid>
 
 
 
 
 
 
 
 public class ViewModel
    {
        public ObservableCollection<Model> ModelList
        {
            get
            {
                return new ObservableCollection<Model>()
                {
                    new Model(){UserName="甲",UserId="1",UserType=UserTypeEnum.Teacher},
                    new Model(){UserName="乙",UserId="2",UserType=UserTypeEnum.Student},
                    new Model(){UserName="甲",UserId="3",UserType=UserTypeEnum.Free_Agent},
                    new Model(){UserName="甲",UserId="4",UserType=UserTypeEnum.Staff},
                };
            }
        }
        public ObservableCollection<UserTypeInfo> TypeList
        {
            get
            {
                return new ObservableCollection<UserTypeInfo>()
                {
                    new UserTypeInfo(){DisplayName="教师",EnumValue=UserTypeEnum.Teacher},
                    new UserTypeInfo(){DisplayName="学生",EnumValue=UserTypeEnum.Student},
                    new UserTypeInfo(){DisplayName="自由职业者",EnumValue=UserTypeEnum.Free_Agent},
                    new UserTypeInfo(){DisplayName="职员",EnumValue=UserTypeEnum.Staff},
                };
            }
        }
    }
    /// <summary>
    /// 模拟实体类
    /// </summary>
    public class Model
    {
        public string UserName
        { get; set; }
        public string UserId
        { get; set; }
        public UserTypeEnum UserType
        {
            get;
            set;
        }
    }
    /// <summary>
    /// 模拟实体类中某个属性的枚举值
    /// </summary>
    public enum UserTypeEnum
    {
        Student,
        Teacher,
        Free_Agent,
        Staff
    }
    /// <summary>
    /// 模拟类别类
    /// </summary>
    public class UserTypeInfo
    {
        public string DisplayName { get; set; }
        public UserTypeEnum EnumValue { get; set; }
    }

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多