WPF 中DATAGRID 里面的 RadioButton 怎么查找

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF 中DATAGRID 里面的 RadioButton 怎么查找相关的知识,希望对你有一定的参考价值。

<dg:DataGridTemplateColumn Header="选择" Width="50">
<dg:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<RadioButton Name="rbcheck" ></RadioButton>
</DataTemplate>
</dg:DataGridTemplateColumn.CellTemplate>
</dg:DataGridTemplateColumn>

for(int i=0;i<datagrid.Items.Count;i++)

RadioButton checkRadioButton = datagrid.Columns[0].GetCellContent(datagrid.Items[i]) as RadioButton;
if (checkRadioButton.IsChecked==true)

checkedindex = i;
flag = true;


if (!flag)

RadioButton checkRadioButton = datagrid.Columns[0].GetCellContent(datagrid.Items[0]) as RadioButton;
checkRadioButton.IsChecked=true;


checkRadioButton 一直是NULL
我是要在datagrid 里面 做单选按钮。谁可以给个 例子,可以加分。我确实不会WPF 所以 请各位说详细些

参考技术A for(int i=0;i<datagrid.Items.Count;i++)

RadioButton rb = ddatagrid.Items[i] as RadioButton;
if(rb!=null)


参考技术B x:Name="rbcheck"加一个x: 参考技术C 1.这个需要手动吧?给个复制的按钮.然后在内存表中做操作,再复制给你需要粘贴的datagrid.
2.如果你想把内容写到剪切板中,那还要规范数据类型和格式,那个就比较麻烦了.
我不知道你想要的效果是前者还是后者?本回答被提问者和网友采纳

wpf datagrid怎么得到焦点?用datagrid.focus()不行

如果用鼠标点WPF上的一个DataGrid控件,然后用键盘UP、Down方向键上下移动,则当前行也上下移动,但是如果用datagrid.focus()方法都焦点设置到datagrid控件,那么就不会出现上面的效果,请问这是怎么回事呢?

参考技术A 你得让里面行获得焦点
比如第一行:

var row = dataGrid.ItemsContainerGenerator.ContainerFromIndex(0) as FrameworkElement;
if(row != null)
row.Focus();追问

这样不行,得不到焦点

追答

调整到Input优先级呢?

row.Dispatcher.BeginInvoke(new Action(() => row.Focus()));

追问

还是不行

追答

你看看你的row到底是不是null?
我这边试了是可以的,唯一的问题就是没有高亮,加上selectedindex = 0就行了

对了,应该是dataGrid.ItemContainerGenerator,原来多写多了一个s

追问

这个之前就试过了,只是得到高亮显示,并没有获得焦点

追答

你按上下键不能动?给个邮箱,我发工程给你

另外,如果你的意思是要Cell那个粗框的效果,再找到Cell Focus就行了

追问

只要datagrid得到焦点,上下键就能动了,现在就是获取不到焦点,发给我吧,443936190@qq.com 非常感谢

追答

已发

本回答被提问者采纳

以上是关于WPF 中DATAGRID 里面的 RadioButton 怎么查找的主要内容,如果未能解决你的问题,请参考以下文章

wpf datagrid怎么得到焦点?用datagrid.focus()不行

WPF DataGrid 绑定到List集合

WPF中的DataGrid怎么刷新数据

WPF 中的DataGrid怎么分页啊

WPF DataGrid 如何对选择的多行进行删除

wpf中datagrid选择改变事件中怎样绑定RadioButton的数据