C# の WPF ツールキット (またはそれぞれ他の WPF クラス) で「ページ」クラスを拡張することは可能ですか? 私がやろうとしたこと:
public class ExtendedPage : Page{
protected void doStuff(){
// lots of joy n pleasure
}
}
public partial class RandomWindow : ExtendedPage{
private void randomMethod(){
doStuff(); // causes error
}
}
私が質問している理由は明らかです。Page クラス (ExtendedPage) を拡張した後、サブクラス (RandomWindow) はそのベースのメソッドにアクセスできなくなります。これは (少なくとも私の推測では) RandomWindow が部分的であるという状況が原因です。残念ながら、このクラスは WPF (対応する *.xaml へのリンク) によって生成されるため、部分クラスの他の部分を見つけることができません。
この質問は、私が完全なバカのように見える非常に明白な答えにつながる可能性がありますが、どうやら私はそれを理解することができません. 私は C# を使い始めたばかりで、私のプログラミングの原点は Java です。
正確なエラー メッセージは、「'type' の部分宣言では、異なる基底クラスを指定してはなりません」 (CS0263) です。
コメントの 1 つへの応答として: *.xaml での "Page" の宣言は、基本クラスが "Page" (ExtendedPage ではない) である分離コード ファイルを生成するようです。これを変更しても機能しないようです。コンパイラは、タイプ ExtendedPage が見つからないことについて不平を言います。
<Page x:Class="...RandomWindow" ... />
// to
<src:ExtendedPage x:class="...RandomWindow"
xlmns:src="...ExtendedPage" />