У меня есть ObservableCollection он привязан к ListBox. ListBox.ItemTemplate содержит текст боксы и один чек бокс. При изменении чек бокса не меняется ObservableCollection. Изменения модели происходят, но set ObservebaleCollection не вызывается. Может быть ListBox меняет коллекцию при удалении какого либо элемента? Изменение ObservableCollection нужен для занесения данных в БД допустим после нажатия кнопки.
private bool userListOpen = false;
private ObservableCollection<UserModel> _userModels = null!;
public bool UserListOpen
{
get => userListOpen;
set
{
Set(ref userListOpen, value);
UserContext userContext = new UserContext();
if (userListOpen)
UserModels = new ObservableCollection<UserModel>(userContext.GetUserList());
else
UserModels = null;
}
}
public ObservableCollection<UserModel> UserModels
{
get => _userModels;
set => Set(ref _userModels, value);
}
<TabControl>
<TabItem Selector.IsSelected="{Binding UserListOpen}">
<TabItem.Header>
<TextBlock Text="Список пользователей"/>
</TabItem.Header>
<TabItem.Content>
<StackPanel>
<ListBox ItemsSource="{Binding UserModels}">
<ListBox.ItemTemplate>
<DataTemplate>
<WrapPanel>
<TextBlock Text="{Binding Id}"/>
<TextBlock Text="{Binding Username}"/>
<TextBlock Text="{Binding Created}"/>
<CheckBox Content="Блокировка"
IsChecked="{Binding IsLocked}"/>
</WrapPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</StackPanel>
</TabItem.Content>
</TabItem>
<TabItem>
</TabItem>
</TabControl>
Вместо текста Блокировка была привязка и она изменялась. То есть объект меняется, а коллекция нет.

UserModelпочему решили оставить в секрете? Где код свойстваIsLocked? – aepot Oct 06 '23 at 12:49