我有一个数据网格。在此数据网格中,以编程方式添加新行。
添加新行时,新行的第一个单元格将被聚焦。
现在,如果用户点击任何其他单元格而未在第一个单元格中输入数据,则焦点不应从第一个单元格移动。我的意思是我希望用户在第一个单元格中输入数据。如果他不想在第一个单元格中输入数据,那么他/她应该按 Enter 。如果他想从任何其他行编辑任何其他单元格,那么他应该能够做到。但当他再次进入新的行时,他应该被迫集中第一个细胞
答案 0 :(得分:0)
由于您不希望焦点移动到新行中的任何其他列,因此您可以禁用该行的所有元素。
现在,只要用户按Enter键或他/她将一些文本输入到新行的第一列,就启用该行的所有元素。
例如,考虑两个TextBox。最初将禁用第二个文本框。当用户在第一个TextBox中输入或任何数据时,第二个TextBox将被启用。
XAML代码:
<TextBox Name="txtBox" Grid.Row="0" KeyDown="txtBox_KeyDown" TextChanged="txtBox_TextChanged"></TextBox>
<TextBox Name="txtBox2" Grid.Row="1" IsEnabled="False"></TextBox>
C#代码:
private void txtBox_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
txtBox2.IsEnabled = true;
txtBox2.Focus();
}
}
private void txtBox_TextChanged(object sender, TextChangedEventArgs e)
{
if (!txtBox.Text.Equals(""))
{
txtBox2.IsEnabled = true;
}
else
{
txtBox2.IsEnabled = false;
}
}
您可以使用相同的概念来解决您的问题。