先引用: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;
这样界面表格中就会选中数据库读取的值。
XMAL文件中 其中 OPERATION 是枚举先引用:xmlns:core="clr-namespace:System;assembly=mscorlib"<Window.Resources> <ObjectDataProvider x:Key="OperationEnum" MethodName="GetValues" ObjectTyp...
WPF
在
DataGrid
列中
使用
ComboBox
绑定
,改变
ComboBox
可回传至
绑定
的实体,
网上找了好久,终于搞定了,不是那个用
枚举
的例子!!
ComboBox
绑定
的是一个实体列表.
程序名字叫 给唐僧选老婆!哈哈
<br />
wpf
中
datagrid
comboxColumn的数据
绑定
主要分下面几步<br /> <br /> <br />1。提供数据源类型:可以是任意的数据类型:这里用
枚举
publicenumOrderStatus
{ None, New, Processing, Shipped, Received };<br /><br />
2。设置静态数据源:<br />
<ObjectDataProvider x:Key="dataProvider
" MethodName="GetValues"
1.创建
DataGrid
<
DataGrid
x:Name="
dataGrid
" HorizontalAlignment="Left" Margin="15,195,0,0" VerticalAlignment="Top" Height="320" Width="400" AutoGenerateColumns="False">
</
DataGrid
>
2.列名设置
在
WPF
中
对
DataGrid
控件的列名设置是非常简单方便的,跟
WPF
的所有控件都一样可以对某个元素的独立控
不变, 随机, 波动
}前台代码<Window.Resources>
<ObjectDataProvider x:Key="myEnum" MethodName="GetValues" ObjectType="{x:Type core:Enum}">
<ObjectDataPr
WPF
DataGrid
ComboBox
Column
绑定
Enum类型(MVVM模式)
需要在
comboBox
Column
绑定
一列用于选择,但是
绑定
总是不成功,下拉列表始终为空,经查阅资料方成功,特此记录。
1.model定义
定义了一个
枚举
类,用于
绑定
到
combobox
column
2.viewmodel
viewmodel
中
定义了集合,
绑定
到
datagrid
的ItemsSource上
3.Xaml文件
中
①因为
combobox
column只能
绑定
静态资源还是啥的(ps:我也不知道,萌新一个,百度上看来
在
使用
DataGrid
的时候,有时候需要使某些列为
ComboBox
,这时自然想到
使用
DataGrid
ComboBox
Column,但是如果
使用
的是ItemsSource数据
绑定
后台的对象,就会发现,这根本就不能用。
首先,看有问题的代码:
后台代码:
using System.Windows;
using System.Collections.ObjectModel;
usi...
1、AllCells 调整列宽,以适合该
列中
的所有单元格的内容,包括标题单元格。
2、AllCellsExceptHeader 调整列宽,以适合该
列中
的所有单元格的内容,不包括标题单元格。
3、ColumnHeader 调整列宽,以适合列标题单元格的内容。
4、DisplayedCells 调整列宽,以...
大伙应该都知道,
DataGrid
绑定
是不能用匿名类的,所以我那里会是用的泛型结构体.别烦我啰索,也许就有很多人都忘了,这个泛型结构体有时候还是比较好用的,就当是复习了.
泛型结构如下:
public struct CP
public T Field1
转载地址:http://www.zhixing123.cn/net/csharp-
wpf
-
datagrid
-binding.html
最近
使用
C#
+
WPF
开发一个小测试工具,其
中
用到了
DataGrid
。因为没有
C#
+
WPF
的开发经验也是一边摸索一边开发,所幸
C#
+
WPF
的上手难度不大,开发过程较为顺利。不过在
使用
DataGrid
的时候还是遇到了一点阻绊,并且让人有些恼火。
闲话少叙,讲一下这里
wpf
开发。在一些
datagrid
表
中
,需要显示enum类型信息。但是enum类型的
枚举
种类一般都用英文命名,直接显示在ui上可能有些用户不太能理解是什么意思。所以需要在ui上展示其实际
中
文含义。
在enum的每个
枚举
项前增加[Description(&quot;xxxx&quot;)]这样的Attribute限定。
在代码
中
实现ValueConverter类。
public class Enum...