ObservableCollection.CollectionChange在设计时

时间:2019-07-09 09:31:23

标签: c# wpf xaml

user_settings

public Router() // Router is a ContentControl with [ContentProperty(nameof(Routes))] { Routes.CollectionChanged += (sender, args) => { // designer will crash here because NewItems is null... if (args.NewItems.Count == 0) return; var route = (Route)args.NewItems[0]; _routesCache[route.Id] = route; }; } public ObservableCollection<Route> Routes { get; } = new ObservableCollection<Route>(); 被调用,但是CollectionChangedargs.NewItems,并且collection始终为空。有什么方法可以使其在设计时可用?

null

我需要在设计时访问这两个<local:Router x:Name="AppRouter"> <local:Route Id="Home" Type="local:Home" /> <local:Route Id="Login" Type="local:Login" /> </local:Router> 对象。

1 个答案:

答案 0 :(得分:0)

我通过不使用ObservableCollection<T>解决了这个问题,因为即使在发生Loaded事件后,项目在设计时始终为空。

我现在只使用List<T>并在Loaded事件处理程序中访问路由。