我正在构建自己的向导样式界面实现并努力使其正常工作,以及我希望遇到相同问题的所有其他样式的向导界面。见图片:
基本上我使用的是网格,并且在其下方有我的导航元素。网格将切换屏幕,如下所示:
private void btnNext_Click(object sender, RoutedEventArgs e)
{
Wizard.Progress++;
SwitchUserControl();
}
private void SwitchUserControl()
{
switch (Wizard.Progress)
{
case 0:
contentGrid.Children.RemoveRange(0, contentGrid.Children.Count);
contentGrid.Children.Add(screen0);
break;
case 1:
contentGrid.Children.RemoveRange(0, contentGrid.Children.Count);
contentGrid.Children.Add(screen1);
break;
case 2:
contentGrid.Children.RemoveRange(0, contentGrid.Children.Count);
contentGrid.Children.Add(screen2);
break;
case 3:
contentGrid.Children.RemoveRange(0, contentGrid.Children.Count);
contentGrid.Children.Add(screen3);
break;
}
}
这就是我遇到问题的地方:
在控件之间切换效果很好。问题是,例如在屏幕上说输入日期。我有一些数据验证代码要在该文本字段上运行。如果验证失败,文本框边框变为红色并显示一条消息。但是现在我不知道这段代码可以去哪里。我以前在usercontrol screenX上的按钮上有它,但现在我的导航按钮在下面,然后如果我想把它放在那些导航按钮下的代码上,我无法访问文本字段!
我也看到这个问题出现在大多数向导样式界面的实现中。我看到的大多数示例都使用复选框或单选按钮,因此数据输入没有错误。但这对这个例子没有多大帮助。
那么我有什么选择可以在这里实现我想要的呢???