【问题标题】:UI and variable accesibility confusionUI 和变量可访问性混淆
【发布时间】:2011-01-11 13:58:47
【问题描述】:

我正在构建自己的向导样式界面实现,并努力使其正常工作,以及我希望遇到相同问题的所有其他样式的向导界面。见图片:

基本上,我使用的是网格,并在其下方放置了我的导航元素。网格将切换屏幕,如下所示:

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的按钮上,现在我的导航按钮在下面,然后如果我想把它放在那些导航按钮下的代码上,我无法访问文本字段!

我也看到这个问题出现在大多数向导样式界面的实现中。我看到的大多数示例都使用复选框或单选按钮,因此数据输入没有错误。但这对这个例子帮助不大。

那么我有什么选择可以在这里实现我想要的呢???

【问题讨论】:

    标签: c# wpf wizard pagefunction


    【解决方案1】:

    您的问题的答案可能是从更规范的方法重新开始。 WPF 支持一个不错的Navigation API,您可以使用它来构建向导。 Here is a sample 在工作中。

    关于验证,在 Navigation API 中,您可以使用 Page 类代替您的控件(来自您的示例)。您的 Page 类可以有一个属性来指示它是有效还是无效,并且您可以保持特定于页面的逐个字段输入验证的逻辑。

    【讨论】:

    • 我似乎没有任何可以添加到解决方案中的 NavigationWindow。我有页面功能 (WPF) 但找不到导航窗口???
    猜你喜欢
    • 1970-01-01
    • 2011-10-08
    • 1970-01-01
    • 1970-01-01
    • 2014-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-14
    相关资源
    最近更新 更多