私はWPFをUserControl
使用しており、クラスを継承させ、そのクラスを他のクラスの基本クラスとして使用しようとしています。これを行う方法に関する記事を多数読んだことがありますが (50 を超える賛成票があるこの記事など)、それらはすべて同じことを言っており、どれも機能しません。
私はこのコードを持っています:
namespace MyNamespace {
// handwritten
public class BaseControl : UserControl { }
// generated by the IDE
public partial class XAMLControl1 : UserControl {
...
}
}
今、その行を次のように変更します
public partial class XAMLControl1 : BaseControl {
そしてXAMLでは、私はそれをから変更します
<UserControl x:Class="MyNamespace.XAMLControl1" ...>
...
</UserControl>
に
<my:BaseControl x:Class="MyNamespace.XAMLControl1"
xmlns:my="clr-namespace:MyNamespace" ...>
...
</my:BaseControl>
そのmy:BaseControl
部分に波線の青で下線が引かれているので、ホバーすると IntelliSense が
名前 "
BaseControl
" は名前空間 " " に存在しませんclr-namespace:MyNamespace
。
そして、コンパイラは私に奇妙なエラーを与えます
要素 '<m>' の終了タグが見つかりませんでした。
タイプ '
m
' が見つかりませんでした。アセンブリ参照が欠落していないこと、および参照されているすべてのアセンブリがビルドされていることを確認してください。名前 "
BaseControl
" は名前空間 " " に存在しませんclr-namespace:MyNamespace
。
はい、それは「タイプ ' m
' が見つかりませんでした」です。どこでも名前付きの型を使用しようとしている場所がわかりませんm
。これは無関係なコンパイラのバグだと思いますが、言及したいと思いました。BaseControl
また、タイプが名前空間に存在することは間違いありませんMyNamespace
。を入力した後、インテリセンスは何も提案しませんmy:
。
この問題を解決するにはどうすればよいですか? Windows デスクトップ (7) 用に Visual Studio 2012 Express を使用しています。