У меня есть приложение WPF со следующим XAML в моем MainWindow.xaml.Почему конструктор вызван в моем WPF при привязке?
Я не понимаю, почему вызывается конструктор DxTaskList при вызове OnPropertyChanged("Sequences");
. Как вы видите ниже, элемент управления вкладками привязан к списку последовательностей. В соответствующем классе модели представления у меня есть свойство Sequences, которое я изменяю, поэтому, естественно, мне нужно дать представление знать, поэтому я делаю вызов OnPropertyChanged("Sequences")
, но я пытаюсь понять, как работает WPF.
Восстановлено ли визуальное дерево при обновлении привязки родителя? Как это работает? Обратите внимание, что мое приложение использует Prism, поэтому я не уверен, что это имеет значение.
<dxdo:LayoutPanel Caption="TaskList">
<dx:DXTabControl x:Name="TabControl"
ItemsSource="{Binding Sequences}"
SelectionChanged="TabControl_OnSelectionChanged">
<dx:DXTabControl.View>
<dx:TabControlMultiLineView HeaderLocation="Bottom"/>
</dx:DXTabControl.View>
<dx:DXTabControl.ItemTemplate>
<DataTemplate>
<Grid>
<TextBlock Text="{Binding Name}"></TextBlock>
<views:DxTaskList x:Name="Tasklst"/>
</Grid>
</DataTemplate>
</dx:DXTabControl.ItemTemplate>
</dx:DXTabControl>
</dxdo:LayoutPanel>
Мои последовательности - это ObservableCollection, значит ли это, что конструктор DxTaskList следует вызывать только один раз? Или он должен быть вызван каждый раз, когда изменяется список последовательностей? – Ray
Я не на 100% на это, но да, когда список изменений, TabControl должен создавать новый элемент, и, следовательно, создается новый DxTaskList. Но если вы используете PRISM, если PartCreationPolicy на DxTaskList является общим (или, возможно, даже не указанным, например, по умолчанию), вам будет предоставлен статический (singleton) экземпляр ergo no ctor (кроме первого раза). – JohnWrensby