0

私のユーザー定義クラスから継承するXAMLページがあります。

<xpap:GenericListPage 
x:Class="my.View.ListPage"
xmlns:xpap="clr-namespace:my.View.Generic" ... />

当初、XAMLページに汎用基本クラスを使用したかったのですが、それは不可能でした(少なくとも、WP7では; WP8ではページに汎用基本クラスを使用できますか?)。したがって、私はこの回避策に行き着きました(ExtendedPhoneApplicationPageはPhoneApplicationPageから継承し、ListPageなどのすべてのページがcommenに持つべき追加の機能/動作を追加します):

namespace my.View
{
    namespace Generic
    {
        public partial class GenericListPage : 
            ExtendedPhoneApplicationPage<ListViewModel>
        {
            ...
        }
    }

    public partial class ListPage : Generic.GenericListPage
    {
        ...
    }

    public class ExtendedPhoneApplicationPage<T> : 
        PhoneApplicationPage where T : class, IViewModelBase
    {
        ...
    }
}

これは、WP8 SDKをインストールするまで(私が覚えている限り)、すべて一緒に正常に機能しました。デザイナが「無効なマークアップ」と言い、「名前「GenericListPage」が名前空間「clr-namespace:my.View.Generic」に存在しません」というエラーがあります。

奇妙な部分は、ソリューションがコンパイルされ、エミュレーターにデプロイできることです。エラーを解消する理由や方法を知っている人はいますか?

4

0 に答える 0