Windows应用商店应用:防止两个几乎相同的用户控件中的重复代码

时间:2014-08-25 17:01:09

标签: c# xaml user-controls windows-store-apps

所以我的Windws商店应用程序中有两个用户控件,外观和工作几乎相同:

Control 1 http://image-upload.de/image/FbKYsa/319b71644f.png Control 2 http://image-upload.de/image/Hd9eMW/b78fca7c85.png

控件上的事件和事件处理是相同的,唯一的区别是第二个控件有一个额外的ComboBox,如您所见。 每当我更改某些功能时,如何防止代码重复和加倍工作?

我尝试将相同的控件打包到资源字典中,但无法弄清楚如何访问字典的代码隐藏中的控件元素。 据我所知,我也无法派生第二个控件,因为第一个使用XAML。

我的最后一个想法是只使用一个类,并给构造函数一个标志,以便在需要时添加一个ComboBox。但它似乎并不是正确的方式。有什么建议?

1 个答案:

答案 0 :(得分:1)

我刚刚在应用上做了类似的事情。我的功能需要两个文本框用于输入密码,而OK,Cancel按钮在两个控件中都可用,但是其中一个控件也需要显示编码类型的单选按钮(这些按钮位于StackPanel中)。我在构造函数中添加了一个参数,如下所示:

    public PasswordInputBox(bool isForImage)
    {
        this.InitializeComponent();
        if (isForImage)
            //initialize actions for that part of the EmbedTypePanel;
        else
            EmbedTypePanel.Visibility = Visibility.Collapsed;
    }

然后,如果您需要使用额外组合框的控件,您可以初始化它,否则您只需将其折叠,以便用户不是更聪明。

相关问题