Как обновить WPF DataGrid?

Упомянутые выше решения больше не работали для меня, поэтому я публикую свое решение здесь (я использовал расширение для String):

extension String {
    func matches(_ regex: String) -> Bool {
        return self.range(of: regex, options: .regularExpression, range: nil, locale: nil) != nil
    }
}

Пример:

if str.matches("^[a-zA-Z0-9._-]{1,30}$") {
    //...
}
26
задан KovBal 31 May 2009 в 18:04
поделиться

3 ответа

Причина, по которой он не обновляется, заключается в том, что LINQ-to-SQL не реализует INotifyCollectionChanged, поэтому WPF не имеет возможности узнать, что ItemsSource был обновлен. Наименее страшный способ исправить это - скопировать результаты LINQ-to-SQL в ObservableCollection - когда вы выполняете Insert, также добавляйте их в наблюдаемую коллекцию. Затем вы увидите обновление.

21
ответ дан 28 November 2019 в 06:08
поделиться

Проблема в том, что вам необходимо обновить контекст данных LINQ-to-SQL. DataContext не распознает новую строку должным образом даже после изменений отправки. Вам нужно избавиться от имеющегося у вас DataContext и создать новый. В большинстве случаев DataContext следует использовать для одной короткой операции, а не как длительный объект.

2
ответ дан 28 November 2019 в 06:08
поделиться

Или просто вызовите код поиска еще раз (обычно это кнопка поиска)> В моем случае я решил эту проблему вот так.

0
ответ дан 28 November 2019 в 06:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: