0

コントロールをグリッドに配置しました。コントロールが、System.Windows.Controls.Buttonから順番に派生するパブリッククラス「ButBase」から派生するとします。コードは通常コンパイルされ、アプリは問題なく動作します。しかし、本当に厄介なことがあります。

xaml-designタブに切り替えようとすると、「ドキュメントのルート要素はビジュアルデザイナーによってサポートされていません」と表示されます。これは正常であり、私はそれでまったく問題ありませんが、すべてのxamlコードは下線が引かれ、VS2010は次のように述べています。「ButBaseのインスタンスを作成できません」が、通常はコンパイルして実行できます。

VS2008で同じコードを試しましたが、ButBaseでパブリックパラメーターレスコンストラクターを確認する必要があるとのことでしたが、1つ配置した後でも、同じエラーが表示されました。

ここで何が恋しいですか?

4

1 に答える 1

1

ButBaseないことを確認してくださいabstract。デザイナーはそれらが好きではありません。

Initializedまた、コンストラクターやLoadedハンドラーで面白いビジネスをしないように注意してください。Funnyには、データベースへの接続や、設計者に干渉する可能性のあるその他のタスクなど、重要なタスクが含まれます。このようなコードはすべて、デザイナーチェックでラップする必要があります。デザイナーの存在を確認する方法はいくつかありますが、次の方法で問題なく動作することがわかりました。

internal static class DesignModeChecker
{
    private static bool? _isInDesignModePriv;

    public static bool IsInDesignMode
    {
        get
        {
            if (!_isInDesignModePriv.HasValue)
            {
                _isInDesignModePriv = Process.GetCurrentProcess().ProcessName.ToLower().Trim() == "devenv" && !Debugger.IsAttached;
            }

            return _isInDesignModePriv.Value;
        }
    }
}
于 2010-04-23T17:57:43.800 に答える