XMAL文件中 其中 OPERATION 是枚举
先引用:xmlns:core="clr-namespace:System;assembly=mscorlib"
<Window.Resources>
<ObjectDataProvider x:Key="OperationEnum" MethodName="GetValues" ObjectType="{x:Type core:Enum}">
<ObjectDataProvider.MethodParameters>
<x:Type Type="locenum:OPERATION"/>
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
<Window.Resources>
<DataGrid x:Name="EquipmentParamsDataGrid"
HeadersVisibility="Column"
Grid.Column="1"
Margin="0,0,5,5"
AutoGenerateColumns="False"
SelectionUnit="FullRow"
Height="Auto"
Width="Auto"
CanUserAddRows="False"
IsReadOnly="True"
>
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Setter Property="Height" Value="26" />
<Setter Property="FontSize" Value="13"/>
</Style>
</DataGrid.RowStyle>
<DataGrid.ColumnHeaderStyle>
<Style TargetType="DataGridColumnHeader">
<Setter Property="HorizontalContentAlignment" Value="Center"></Setter>
<Setter Property="Background" Value="#B0E0E6"></Setter>
<Setter Property="Foreground" Value="#17acae"></Setter>
<Setter Property="BorderThickness" Value="1" />
<Setter Property="BorderBrush" Value="#17acae" />
<Setter Property="Height" Value="26" />
<Setter Property="FontSize" Value="16"/>
</Style>
</DataGrid.ColumnHeaderStyle>
<DataGrid.Columns>
<DataGridTemplateColumn Width="40" Header="序号" Visibility="Collapsed" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow}}, Path=Header}" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="10,0,0,0"></TextBlock>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Binding="{Binding ID}" Header="档位ID" Width="Auto" ElementStyle="{StaticResource CenterAlignmentStyle }" Visibility="Hidden" />
<DataGridTemplateColumn Header="实现方式" Width="125" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox Name="cbOperation" Text="{Binding OperationType, Mode=TwoWay}" Width="Auto" SelectedValue="{Binding OperationType}" ItemsSource="{Binding Source={StaticResource OperationEnum}}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGrid.Columns>
<DataGrid>
对应类:
public class EquipmentParams
{
/// <summary>
/// 主键Id
/// </summary>
public int Id { get; set; }
/// <summary>
/// 实现方式
/// </summary>
public int Operation { get; set; }
public OPERATION OperationType { get; set; }//实现下拉框功能使用
/// <summary>
/// 档位是否参与设置
/// </summary>
public int IsSet { get; set; }
/// <summary>
/// xmal绑定 是否选中
/// </summary>
public bool IsCheckSet { get; set; }
#endregion
}
public enum OPERATION //枚举
{
单选 = 1,
多选 = 2,
文本框 = 3,
下拉框 = 4
}
从数据库获取数据后 将 int类型的 Operation 强制转化枚举类型
foreach (DataRow row in dataset.Tables[0].Rows)
{
EquipmentParams ep= new EquipmentParams ();
ep.Operation=Conver.ToInt32(row["Operation"].ToString());
ep.OperationType = (OPERATION)Operation;
}
这样界面表格中就会选中数据库读取的值。