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>();
被调用,但是CollectionChanged
为args.NewItems
,并且collection始终为空。有什么方法可以使其在设计时可用?
null
我需要在设计时访问这两个<local:Router x:Name="AppRouter">
<local:Route Id="Home" Type="local:Home" />
<local:Route Id="Login" Type="local:Login" />
</local:Router>
对象。
答案 0 :(得分:0)
我通过不使用ObservableCollection<T>
解决了这个问题,因为即使在发生Loaded
事件后,项目在设计时始终为空。
我现在只使用List<T>
并在Loaded
事件处理程序中访问路由。