2017-07-28 11 views
0

Pageから直接継承するBaseDiagramPageクラスがあります。これは、複数のページに共通する機能を保持するというアイデアです(これが悪い方法であるかどうかを教えてください)。しかし、BaseDiagramPageを実装している私のXAMLクラスは、this.Loadedが存在しないと不平を言っています。私がPageから直接XAMLクラスを継承するとうまくいきます。ロードされたものが継承されたBaseDiagramPageに存在しません

BaseDiagramPageクラスには、文字通り何も含めることができません。

洞察が得られるでしょう。

public sealed partial class EmptyPage : BaseDiagramPage 
{ 
    public EmptyPage() 
    { 
     this.InitializeComponent(); 

     // this property does not exist, BaseDiagramPage is public 
     this.Loaded += (sender, e) => 
     { 
      // load something 
     }; 
    } 
} 

EDIT:

BaseDiagramPageソース

namespace CoreProject.Pages 
{ 
    public class BaseDiagramPage : Page 
    { 

    } 
} 

編集編集:

base.Loaded作品を使用して、それを右ですか?私はちょうどこれをやった後

<local:BaseDiagramPage x:Class="xxx.EmptyPage" ...> 
    ... 
</local:BaseDiagramPage> 

<Page x:Class="xxx.EmptyPage" ...> 
    ... 
</Page> 

を変更、私はあなたがあなたのEmptyPageXAML一部を変更するのを忘れて考えるLoaded

base.Loaded += (sender, e) => 
{ 
}; 
+0

現在のページオブジェクトが無効なので – mjwills

+0

のソースコードを含めてください。基本ページはまだ有効なので、一度変更するとエラーはなくなります。 – visc

+0

おかげで、それはthis' '上 – visc

答えて

1

私のクラスを呼び出したいですC#コードから継承を削除することもできます。だから、次のことはうまくいくでしょう。

public sealed partial class EmptyPage 
+0

また、エラー:-)役に立った私の質問を編集' BaseDiagramPage' –

関連する問題