У меня есть следующий файл xaml:
<Page ...>
<Grid>
<ListView ItemsSource="{Binding MissingValues}">
<ListView.View>
<GridView AllowsColumnReorder="true" ColumnHeaderToolTip="Information on Missing Values">
<GridViewColumn DisplayMemberBinding="{Binding Path=Element.Name}" Header="Element" Width="100" />
<GridViewColumn DisplayMemberBinding="{Binding Path=Description}" Header="Description" />
</GridView>
</ListView.View>
</ListView>
</Grid>
Код только:
DataContext = new MyViewModel();
И MyViewModel
имеет public ObservableCollection<MissingValue> MissingValues
, инициализированный в конструкторе.При нажатии кнопки элементы добавляются к этому свойству, и все работает как показано.
Поскольку файл xaml стал слишком большим, я хотел уменьшить его и упростить управление, извлекая этот ListView
в UserControl
вызывает MissingValuesListView
и вызывает его, используя следующий код:
<local:MissingValuesListView></local:MissingValuesListView>
Однако список больше не обновляется при добавлении новых элементов.
MissingValuesListView
кодпозади содержит только DataContext = new MyViewModel();
.
Я не думаю, что это имеет какое-либо значение (так как код работает, когда часть основного файла xaml, но не при перемещении в UserControl), но оба MyViewModel
и MissingValue
implment INotifyPropertyChanged
.
Мой вопрос: почему это не работает?Я предполагаю, что мне не хватает некоторого кода или какой-либо привязки, но я не смог выяснить что.Любая помощь высоко ценится!