WPF ListView.ItemsSource Проблема с привязкой - PullRequest
1 голос
/ 10 сентября 2010

У меня есть свойство MainViewModel и Customers (список объектов CustomerViewModel в виде ObservableCollection) внутри него.Я хочу связать этот список как ItemsSource с элементом управления ListView.Мой MainViewModel привязан к свойству DataContext Window.Я использовал шаблон ServiceLocator для создания экземпляра MainViewModel, который получает интерфейс IDataService в качестве параметра в конструкторе.Я использовал интерфейс для внедрения службы данных в MainViewModel и мог создать некоторые тестовые данные для дизайнера в Blend.Все отлично работает в Expression Blend, данные отображаются правильно, но когда я запускаю код, ItemsSource имеет значение null и никакие данные не привязаны.DataContext является правильным.Когда я устанавливаю для DataContext значение NULL и снова значение MainViewModel, для экземпляра ItemsSource автоматически устанавливается свойство Customers.Почему при запуске приложения оно не привязывается к свойству Customers автоматически?

<Grid x:Name="LayoutRoot" DataContext="{Binding MainViewModel, Source={StaticResource Locator}}">
    <ListView Margin="12" x:Name="customerList"
              ItemsSource="{Binding Customers}">
        ...
    </ListView>
</Grid>

1 Ответ

2 голосов
/ 10 сентября 2010

Существует ли MainViewModel вашего Locator до создания представления? Если оно заполняется позже и вы не запускаете событие NotifyPropertyChanged, то привязка всегда будет указывать на нулевое значение, которое было при первоначальном связывании.

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