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