请教一个WPF的wpf datagrid 样式焦点单元格索引的问题

wpf datagrid 单元格如何默认单击一次点中_百度知道
wpf datagrid 单元格如何默认单击一次点中
我有更好的答案
可以设为点击选中整行设置DataGrid的行点击模式,或者点击选中单元格。。。SelectionMode
好像是这个属性
设置datagrid的SelectionUnit=&Cell& 即可!~
其他类似问题
为您推荐:
wpf的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁WPF的DataGrid中如何获取当前被选定的行的第一个单元格的值?_百度知道
WPF的DataGrid中如何获取当前被选定的行的第一个单元格的值?
p>点击哪一行.jpg" esrc="/zhidao/pic/item/9e3df8dcd100baa1cc4ab12afc2e38://b://b.jpg" target="_blank" title="点击查看大图" class="ikqb_img_alink"><img class="ikqb_img" src="http,就获得哪一行的编号&nbsp://b.hiphotos.baidu.hiphotos.hiphotos./zhidao/wh%3D450%2C600/sign=a82cfab3b31bbc034af682/9e3df8dcd100baa1cc4ab12afc2e38
提问者采纳
SelectedItem as 你的数据类型你的数据如果是绑定的var item = dataGrid!= null){
var id =if(item
其他类似问题
为您推荐:
wpf的相关知识
其他1条回答
SelectedItem.ToInt32(id[&
} &#47.SelectedI
var id = (DataRowView)this.dtL这样绝对可以取到编号private void dtList_PreviewMouseDoubleClick(object sender.Show(编号&quot.dtList, MouseButtonEventArgs e)
var item =
int bh = Convert.ToString() );/])
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁10:26 提问
wpf 如何获取datagridcell 我需要动态改变单元格的背景
根据条件动态改变单元格背景或者字体。
已经获取到行,但是调试了很久不知道如何锁定到某个单元格。。。
for (int i = 0; i & dg.Items.C i++)
DataRowView drv = dg.Items[i] as DataRowV
string age = Convert.ToString(drv["One"]);
if (age != null)
var row = dg.ItemContainerGenerator.ContainerFromItem(dg.Items[i]) as DataGridR
row.Background = new SolidColorBrush(Colors.Red);
行获取,求大神告知如何获取到某个单元格
按赞数排序
149关注|484收录
1088关注|145收录
415关注|938收录
其他相似问题
相关参考资料WPF DataGrid常用属性记录 - 饶刚 - 推酷
WPF DataGrid常用属性记录 - 饶刚
:使DataGrid进入编辑状态。
CancelEdit
:取消DataGrid的编辑状态。
CollapseRowGroup
:闭合DataGrid的行分组。
CommitEdit
:确认DataGrid的编辑完成。
ExpandRowGroup
:展开DataGrid的行分组。
GetGroupFromItem
:从具体Item中得到分组。
ScrollIntoView
:滚动DataGrid视图。
组件常用属性:
AlternatingRowBackground
:获取或设置一个笔刷用来描绘DataGrid奇数行的背景。
AreRowDetailsFrozen
:获取或设置一个值用来判断是否冻结每行内容的详细信息。
AreRowGroupHeadersFrozen
:获取或设置一个值用来判断是否冻结分组行的头部。
AutoGenerateColumns
:获取或设置一个值用来判断是否允许自动生成表列。
CanUserReorderColumns
:获取或设置一个值用来判断是否允许用户重新排列表列的位置。
CanUserSortColumns
:获取或设置一个值用来判断是否允许用户按列对表中内容进行排序。
:获取或设置单元格的样式。
ColumnHeaderHeight
:获取或设置列头的高度。
ColumnHeaderStyle
:获取或设置列头的样式。
:获取组件中包含所有列的集合。
ColumnWidth
:获取或设置列宽。
CurrentColumn
:获取或设置包含当前单元格的列。
CurrentItem
:获取包含当前单元格且与行绑定的数据项。
DragIndicatorStyle
:获取或设置当拖曳列头时的样式。
DropLocationIndicatorStyle
:获取或设置呈现列头时的样式。
FrozenColumnCount
:获取或设置冻结列的个数。
GridLinesVisibility
:获取或设置网格线的显示形式。
HeadersVisibility
:获取或设置行头及列头的显示形式。
HorizontalGridLinesBrush
:获取或设置水平网格线的笔刷。
HorizontalScrollBarVisibility
:获取或设置水平滚动条的显示样式。
IsReadOnly
:获取或设置DataGrid是否为只读。
MaxColumnWidth
:获取或设置DataGrid的最大列宽。
MinColumnWidth
:获取或设置DataGrid的最小列宽。
RowBackground
:获取或设置用于填充行背景的笔刷。
RowDetailsTemplate
:获取或设置被用于显示行详细部分的内容的模板。
RowDetailsVisibilityMode
:获取或设置一个值用以判定行详细部分是否显示。
RowGroupHeaderStyles
:获取呈现行分组头部的样式。
RowHeaderStyle
:获取或设置呈现行头的样式。
RowHeaderWidth
:获取或设置行头的宽度。
:获取或设置每行的高度。
:获取或设置呈现行时的样式。
SelectedIndex
:获取或设置当前选中部分的索引值。
SelectedItem
:获取或设置与当前被选中行绑定的数据项。
SelectedItems
:获取与当前被选中的各行绑定的数据项们的列表(List)。
SelectionMode
:获取或设置DataGrid的选取模式。
VerticalGridLinesBrush
:获取或设置垂直网格线的笔刷。
VerticalScrollBarVisibility
:获取或设置垂直滚动条的显示样式。
组件常用事件:
BeginningEdit
:发生于一个单元格或行进入编辑模式之前。
CellEditEnded
:发生于一个单元格编辑已被确认或取消。
CellEditEnding
:发生于一个单元格正在结束编辑时。
CurrentCellChanged
:发生于一个单元格成为当前单元格时。
PreparingCellForEdit
:发生于在DataGridTemplateColumn下的单元格进入编辑模式时。
SelectionChanged
:发生于当SelectedItem或SelectedItems属性值改变时。
1.DataGrid隔行变色
RowBackground和AlternatingRowBackground设置一排交替行的背景。AlternationCount是将用于行的样式或颜色的总数
1 &DataGrid Name=&dg& RowHeaderWidth=&50& AlternationCount=&2& AlternatingRowBackground=&#F4F4F4&
AutoGenerateColumns=&False& Grid.Row=&1& HeadersVisibility=&All&
Margin=&4& &
&DataGrid.Columns&
&DataGridTextColumn Binding=&{Binding Name}& Header=&Name&/&
&/DataGrid.Columns&
&/DataGrid&
如果设置AlternatingRowBackground刷,将被分配到行,其中(rownumber%AlternationIdex)== 1
1 &Style x:Key=&DataGridDemoRowStyle&
2 TargetType=&{x:Type Custom:DataGridRow}&&
3 &Style.Triggers&
4 &Trigger Property=&AlternationIndex& Value=&2& &
&Setter Property=&Background& Value=&{StaticResource RowBackgroundAlternationIndex2Brush}& /&
6 &/Trigger&
7 &Trigger Property=&AlternationIndex& Value=&3&&
8 &Setter Property=&Background& Value=&{StaticResource RowBackgroundAlternationIndex3Brush}& /&
9 &/Trigger&
10 &/Style.Triggers&
11 &/Style&
请注意对于上面的样式,有目的的,我只覆盖AlternationIndex= 2,3。对于AlternationIndex= 0时,它使用RowBackground。
对于AlternationIndex= 1,它使用从DataGrid中AlternatingRowBackground的。
2.DataGrid的
ErrorTemplate
1 &Style x:Key=&{x:Type DataGridRow}& TargetType=&{x:Type DataGridRow}&&
&Setter Property=&Background& Value=&Transparent& /&
&Setter Property=&SnapsToDevicePixels& Value=&true&/&
&Setter Property=&Validation.ErrorTemplate& Value=&{x:Null}& /&
&Setter Property=&ValidationErrorTemplate&&
&Setter.Value&
&ControlTemplate&
&TextBlock Margin=&2,0,0,0& VerticalAlignment=&Center& Foreground=&#FFdc000c& Text=&!& /&
&/ControlTemplate&
&/Setter.Value&
12 &/Style&
上面这段XAML设置了DataGridRow的
ValidationErrorTemplate
为RowHeader通过模板
1 &Style x:Key=&{x:Type DataGridRowHeader}& TargetType=&{x:Type DataGridRowHeader}&&
&Setter Property=&Background& Value=&{DynamicResource DataGridHeaderBackground}& /&
&Setter Property=&Foreground& Value=&{DynamicResource DataGridHeaderForeground}& /&
&Setter Property=&BorderBrush& Value=&{DynamicResource DataGridGridLines}& /&
&Setter Property=&BorderThickness& Value=&0,0,0,1& /&
&Setter Property=&Width& Value=&16&/&
&Setter Property=&Template&&
&Setter.Value&
&ControlTemplate TargetType=&{x:Type DataGridRowHeader}&&
&Border Background=&{TemplateBinding Background}&
BorderBrush=&{TemplateBinding BorderBrush}&
BorderThickness=&{TemplateBinding BorderThickness}&
Padding =&{TemplateBinding Padding}&&
&StackPanel Orientation=&Horizontal&&
&ContentPresenter SnapsToDevicePixels=&{TemplateBinding SnapsToDevicePixels}& VerticalAlignment=&Center&/&
&Control SnapsToDevicePixels=&false&
Visibility=&{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGridRow}}, Path=(Validation.HasError), Converter={StaticResource BooleanToVisibilityConverter}}&
Template=&{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGridRow}}, Path=ValidationErrorTemplate}& /&
&/StackPanel&
&Thumb x:Name=&PART_TopHeaderGripper&
VerticalAlignment=&Top&
Style=&{StaticResource RowHeaderGripperStyle}&/&
&Thumb x:Name=&PART_BottomHeaderGripper&
VerticalAlignment=&Bottom&
Style=&{StaticResource RowHeaderGripperStyle}&/&
&/ControlTemplate&
&/Setter.Value&
&Style.Triggers&
&Trigger Property=&IsMouseOver& Value=&True&&
&Setter Property=&Background& Value=&{DynamicResource DataGridHeaderBackgroundHover}& /&
&Setter Property=&Foreground& Value=&{DynamicResource DataGridHeaderForegroundHover}& /&
&/Trigger&
&Trigger Property=&IsPressed& Value=&True&&
&Setter Property=&Background& Value=&{DynamicResource DataGridHeaderBackgroundPressed}& /&
&Setter Property=&Foreground& Value=&{DynamicResource DataGridHeaderForegroundPressed}& /&
&/Trigger&
&Trigger Property=&IsRowSelected& Value=&True&&
&Setter Property=&Background& Value=&{DynamicResource DataGridHeaderBackgroundSelected}& /&
&Setter Property=&Foreground& Value=&{DynamicResource DataGridHeaderForegroundSelected}& /&
&/Trigger&
&/Style.Triggers&
主对于错误验证主要是 当有错误的时候Control显示,并获取上面设置的DataGridRow的错误验证模板为Control的模板,当没有错误时就隐藏作为验证显示的Control
3.DataGrid过滤
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致> WPF之DataGrid获取特定单元格值以及将一列之值相加、趁等
WPF之DataGrid获取特定单元格值以及将一列之值相加、趁等
taylorshen & &
发布时间: & &
浏览:113 & &
回复:0 & &
悬赏:0.0希赛币
WPF之DataGrid获取特定单元格值以及将一列之值相加、乘等
  :本例子只适合.net 4.0中的WPF 中的DataGrid(因为在.Net 4.0之前的WPF中是不包含DataGrid的),不适合VB,ASP,他们有自己的方法。
  1 WPF的基本原理
  第一步:首先加载构造器中的程序片段
  第二部:再加载其他的方法(例如:window_load等)。
  2 WPF中DataGrid的数据的及时更新变化
  //正在探索
  3 WPF中DataGrid获取某一单元格的数据。
  写了一个小的方法,用于获得DataGrid中单元格的值,并将改值进行了累加。方法如下:
  //将指定的列进行累加
private static double getDataGridColumnSumByIndex(DataGrid dataGrid,int index)
double result =
//返回的结果
double temp = 0.0;
//中间变量
for (int i = 1; i & dataGrid.Items.Ci++ )
double.TryParse((dataGrid.Columns[index].GetCellContent(dataGrid.Items[1]) as TextBlock).Text.ToString(),out temp);
  4 对WPF中中的某一个单元格进行赋值
  (dataGrid1.Columns[3].GetCellContent(dataGrid1.Items[0]) as TextBlock).Text = (dataGrid1.Columns[1].GetCellContent(dataGrid1.Items[1]) as TextBlock).Text.ToString();
  赋值表达式的左边为
你需要进行赋值的单元格,右边的为数据源。
  :这儿会有一个小问题,如果你把这句话写在DataGrid的初始化和window_load()方法中,它将不起作用。因为本语句须是DataGrid初始化完成之后对其进行的操作。
  这个方法应该是一个比较笨的方法,如果大家有任何的想法和建议,提出来。谢谢
本问题标题:
本问题地址:
温馨提示:本问题已经关闭,不能解答。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&

我要回帖

更多关于 datagrid 获取行索引 的文章

 

随机推荐