ObservableCollection.CollectionChanged во время разработки - PullRequest
0 голосов
/ 09 июля 2019
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 равно null, и коллекция всегда пуста. Есть ли способ сделать его доступным во время разработки?

<local:Router x:Name="AppRouter">
    <local:Route Id="Home" Type="local:Home" />
    <local:Route Id="Login" Type="local:Login" />
</local:Router>

Мне нужно получить доступ к этим двум Route объектам во время разработки.

1 Ответ

0 голосов
/ 09 июля 2019

Я решил это, не используя ObservableCollection<T>, так как элементы всегда были пустыми во время разработки даже после события Loaded.

Я просто использую List<T> сейчас и получаю доступ к маршрутам в Loaded обработчике событий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...