2012-02-23 6 views
0

私のWPFアプリケーションには4つのUserControlがあります。クラスを継承するWPF UserControlを取得しようとしています

VisualA、VisualB、VisualC、VisualD

私はそれらのそれぞれが共有コードのヒープが含まれている一般的な「プレーヤー」クラスを継承する必要がしたいです - 。例えば方法、タイマーなど

今のところ、これは私が

<UserControl x:Class="VisualA" 

そして、ここで私のコントロールのXAMLで試してみましたが、私は別のクラスファイル内に持っているものです。私のウィンドウで

Partial Public Class VisualA 
    Inherits Player 
End Class 

Public Class Player 
    Inherits UserControl 
End Class 

、私は通常どおりにユーザーコントロールを参照しています:

<local:VisualA></local:VisualA> 

しかし、私は次のエラーを取得しています:私は間違って

Base class 'System.Windows.Controls.UserControl' specified for class 'VisualA' cannot be different from the base class 'Player' of one of its other partial types

何をしているのですか?

継承されたクラス(Player)内のコード(つまりメソッド)がUserControlのコントロールに名前で参照することでアクセスできるようになったことも印象づけられました。

答えて

1

XAMLの基本クラスは、依然としてUserControlに設定されています。それをPlayerに変更します。また、Playerタイプの名前空間を定義する必要があることにも注意してください。すなわち:

<BaseClasses:Player x:Class="VisualA" 
     xmlns:BaseClasses="clr-namespace:MyProject.BaseClasses" 
     ... all your other namespaces used 
+0

ちょっと、私はこれを一度に試してみましたが、次のようなエラーが表示されました: 'Player'タグがXML名前空間に存在せず、 'Player'タイプが見つかりませんでした。アセンブリ参照がないことを確認します。これらのエラーを解決するにはどうすればよいですか? – Ben

+0

Ben

+0

名前空間を正しく設定するだけです。編集済みの回答を参照してください。 – Tyson

関連する問題