当前位置:  开发笔记 > Android > 正文

实现UI状态机的最佳方法是什么?

如何解决《实现UI状态机的最佳方法是什么?》经验,为你挑选了1个好方法。

在我的程序中,我有三种不同的UI状态(正常,成功和错误),每一个控件都可见/隐藏,启用/禁用,颜色改变,标签说不同的东西......等等.在我的代码隐藏中,我基本上希望能够说出ChangeWindowState(UI.Normal);

所以我的问题是如何最好地实现每个州的控制变更?

当然我可以手动更改代码隐藏中的控件,但我想知道是否有更好的方法使用wpf主题或样式.那么也许我可以设置窗口使用我预先定义的"错误"主题.我现在对它们并不是很了解,所以我可能会使用错误的术语,但如果有人能指出我正确的方向如何最好地做这样的事情,我将不胜感激.

谢谢!



1> Daniel Pratt..:

当然,有很多方法可以解决这个问题.如果你有程序状态"对象模型",你可以使用DataTemplates和DataTriggers的某种组合.假设情况并非如此,这是另一种方法:您引用了一个窗口,所以假设您在窗口类中定义了一个"依赖属性",如下所示:

public partial class Window1 : Window
{
    public Window1()
    {
        this.InitializeComponent();

        // Insert code required on object creation below this point.
    }

    public ProgramStatus ProgramStatus
    {
        get { return (ProgramStatus)GetValue(ProgramStatusProperty); }
        set { SetValue(ProgramStatusProperty, value); }
    }

    // Using a DependencyProperty as the backing store for ProgramStatus.  This enables animation, styling, binding, etc...
    public static readonly DependencyProperty ProgramStatusProperty =
        DependencyProperty.Register("ProgramStatus", typeof(ProgramStatus), typeof(Window1), new UIPropertyMetadata(null));
}

public enum ProgramStatus
{
    Normal,
    Success,
    Error
}

现在,您可以通过直接绑定或触发器更改窗口任何元素的任何属性(包括窗口本身).以下是通过属性触发器更改窗口背景颜色的示例:


    
        
    
    

推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有