1

データ オブジェクトで AOP が実行されているため、オブジェクトの作成時に Designer が失敗します。オブジェクトがデザイナーから作成されていることを検出して、AOP 手順を中止することはできますか?

できればAOPクラス内から(これはlibにあり、WPFが関与していることさえ知りません。)多分workdir(デザイナーによって異なる場合)またはそのようなものを見ることによって?

xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
mc:Ignorable="d" 
d:DataContext="{d:DesignInstance IsDesignTimeCreatable=True, Type={x:Type ui:DesignData}}"

class DesignData
{
    public DesignData()
    {
        Func<int, ObservableCollection<Food>> createFoods = i =>
            {
                var r = new ObservableCollection<Food>();
                for (int j = 0; j < 10; j++)
                {
                    r.Add(new Food("Food #"+j+" for profile #"+i));
                }
                return r;
            };

        Profiles = new ObservableCollection<Profile>();
        for (int i = 0; i < 20; i++)
        {
            //Crashes because of AOP start-up procedure
            Profiles.Add(new Profile { Name = "ProfileName" + i, Foods = createFoods(i) });
        }
    }

    public ObservableCollection<Profile> Profiles { get; set; }
}

答えが「いいえ」の場合、適切な代替手段は何ですか? 私が考えることができる唯一のことは、実際のものと同じプロパティを持つ完全に新しいデータ オブジェクトを作成することですが、それは信じられないほど面倒です。

4

0 に答える 0