
我用模板列完成了楼主提出的功能!~望采纳!~
前端:
<Grid>
<DataGrid AutoGenerateColumns="False" Name="dataGrid1" >
<DataGridColumns>
<DataGridTextColumn Binding="{Binding Key}"/>
<DataGridTemplateColumn Header="时间">
<DataGridTemplateColumnCellTemplate>
<DataTemplate>
<TextBlock MouseDown="txtdate_MouseDown" Name="txtdate"/>
</DataTemplate>
</DataGridTemplateColumnCellTemplate>
</DataGridTemplateColumn>
</DataGridColumns>
</DataGrid>
</Grid>
后台:
public MainWindow()
{
InitializeComponent();
Dictionary<int, string> dic = new Dictionary<int, string>
{
{1,"a"},
{2,"b"},
{3,"c"},
{4,"d"},
{5,"e"}
};
dataGrid1ItemsSource = dic;
}
private void txtdate_MouseDown(object sender, MouseButtonEventArgs e)
{
TextBlock tb = sender as TextBlock;
tbText = DateTimeNowToShortTimeString();
}这个很简单哈,只是编辑的时候出现用来编辑的控件(如textbox或combobox),那就编辑 <DataGridTemplateColumnCellEditingTemplate>就行啦!~ 默认显示空白的话,<DataGridTemplateColumnCellTemplate>里控件所绑定的字段默认值没有就行了哈。
看你的“获取”是如何定义的。
在WPF和Winform中, 如果一个控件visibility = hidden时,其默认的获取焦点为False。
打个比方, 页面上有3个TextBox(1,2,3), 正常情况下,光标在第一个Textbox1时, 按下Tab键,焦点会自动切换到Textbox2上。当Textbox2隐藏后,按下Tab键,光标会切到Textbox3上去,而不会给隐藏控件焦点。
但是你手动去设置某个已经被隐藏的控件Focused = true,也不会报错。只是完全没有用罢了。
如果你设置了某个隐藏的控件Focused = true; 然后去找当前界面的焦点时, 系统会报空引用异常。
还是上面的3个Textbox,当你把Textbox2隐藏且手动设置为焦点时, 第一次按下Tab键, 系统内部会报错(界面上没有反应),第二次按下Tab时, 焦点自动切到TextBox1上,第三次按Tab,焦点切换到TextBox3
以上就是关于wpf datagrid怎么得到第一项焦点然后在方向键上下移动全部的内容,包括:wpf datagrid怎么得到第一项焦点然后在方向键上下移动、C# 控件隐藏还能否获取焦点、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)