Обновил студию Microsoft Visual Studio и DataGrid в WPF приложении стало абсолютно неадекватно себя вести:
View
<DataGrid
AutoGenerateColumns="False"
SelectionMode="Single"
CanUserAddRows="False"
SelectedItem="{Binding Path=Config, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
ItemsSource="{Binding EventsList}">
Соответственно ViewModel:
public ICollectionView EventsList { set; get; }
...
EventsList = CollectionViewSource.GetDefaultView(ConfigData);
Где
public ObservableCollection<Config> ConfigData { get; set; }
Собственно сама проблема. При загрузке списка DataGrid выводит строки абсолютно рандомно. Дублирует названия, однако содержимое выделенной строки верное и при выделении происходит корректная выборка. Если после загрузки таблицы сделать EventsList.Refresh();, то отображение таблицы будет уже корректно, но только в пределах видимой части таблицы. Так же если в строку таблицу вставить ComboBox, то поведение таблицы становится ещё хуже.
<!-- Group -->
<DataGridTemplateColumn
Header="Группа"
Width="100"
MinWidth="100"
SortMemberPath="Group"
Visibility="{Binding
Data.IsGrouping,
Source={StaticResource proxy},
Converter={StaticResource BooleanToVisibilityConverter}}"
>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox
IsEditable="True"
ItemsSource="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}, Path=DataContext.AvailableGroups}"
SelectedItem="{Binding Path=Group, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Text="{Binding Path=Group, Mode=TwoWay, UpdateSourceTrigger=LostFocus}"
>
</ComboBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
При попытке назначить группу выделенной строке все ComboBox таблицы начинают повторять за текущим, при этом если опять-таки обновить таблицу, то ComboBox будет уже показывать корректное значение, но снова в пределах видимой части таблицы.
UPD. Такое же не корректное поведение оказалось и у CheckBox. При выделении CheckBoxa у таблицы также выделяются все CheckBox`ы которые якобы продублировались. Обновление списка показывает что это не так. Это всё работало правильно до обновления студии.
UPD. Вопрос решён. Оказалось, что некорректно работали методы переопределения у модели Config
public static bool operator ==(Config с1, Config с2) {..}
public static bool operator !=(Config с1, Config с2) {..}
public override bool Equals(object obj) { ... }
public override int GetHashCode() { ... }
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть отдельный WebApi проект над базой данных пользователей "UserDbWebApi", которую использует проект для авторизации на IdentityServer4 "IdentityServerApi_AspNetIdentity"
Моя задача такова, когда пользователь прокрутит скролл до конца текста выполняется нужный мне кодНо сколько не искал, не смог найти способа...
Мне нужно в 2 lebl'а парсить минуты и секунды соответсвенноВот функция которую я сделал: