WPF之DataGrid应用 细细研究了一下大作,小白,写点基础的东西
<Window.Resources>
<ObjectDataProvider x:Key="keySex" MethodName="GetValues" ObjectType="{x:Type assembly:Enum}">
<ObjectDataProvider.MethodParameters>
<x:Type Type="local:Sex"></x:Type> <!--引用后台的枚举类型,为字段‘性别’提供数据源。上面引用了命名空间Demo-->
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
</Window.Resources>
学习
1、MethodName="getvalues"表示Enum的方法。
2、<ObjectDataProvider.MethodParameters >
<x:Type Type="local:sex"/>
<!--这里竟然不给智能提示-->
</ObjectDataProvider.MethodParameters>
GetValues参数为Type类型
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:assembly="clr-namespace:System;assembly=mscorlib"
xmlns:local="clr-namespace:WpfApplication1"
Title="MainWindow" Height="350" Width="525">
<!--注意clr-namespace是中间的杠-->
<!--public ResourceDictionary Resources { get; set; }-->
<Window.Resources>
<ObjectDataProvider x:Key="sex1" MethodName="GetValues" ObjectType="{x:Type assembly:Enum}">
<ObjectDataProvider.MethodParameters >
<x:Type Type="local:sex"/>
<!--这里竟然不给智能提示-->
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
</Window.Resources>
<Grid>
<DataGrid x:Name="datagrid" AutoGenerateColumns="False">
<DataGrid.Columns>
<!--public ObservableCollection
<DataGridColumn>Columns { get; }--> <!--表示一个动态数据集合,在添加项、移除项或刷新整个列表时,此集合将提供通知。-->
<DataGridTemplateColumn Header="操作" Width="40">
<DataGridTemplateColumn.CellTemplate><!--public DataTemplate CellTemplate { get; set; }-->
<!--获取或设置一个模板,该模板用于显示未处于编辑模式的单元格的内容。-->
<!--<DataTemplate>
VisualTree
</DataTemplate>-->
<DataTemplate>
<CheckBox/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="公司名称" Width="80" Binding="{Binding companyname,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
<DataGridTextColumn Header="姓名" Width="80" Binding="{Binding name,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
<!--<DataGridComboBoxColumn Header="性别" SelectedItemBinding="{Binding sex}" ItemsSource="{Binding Source={StaticResource sex1}}"/>-->
<!--获取或设置当前选定项的绑定。-->
<DataGridTemplateColumn Header="性别">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox Text="{Binding sex}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate >
<ComboBox x:Name="combobox" ItemsSource="{Binding Source={StaticResource sex1}}" SelectedItem="{Binding sex}" IsSynchronizedWithCurrentItem="False"/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
<!--感觉编辑起来选中格外费事啊-->
</DataGridTemplateColumn>
<DataGridTextColumn Header="年龄" Width="80" Binding="{Binding age,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
<DataGridTextColumn Header="职务" Width="80" Binding="{Binding job,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
</Window>