Привязка данных в C# и.NET

Я предполагаю, что у вас есть объект данных в вашем компоненте уведомлений.

Упрощенная версия Notification.vue

new Vue({
  data: {
    notifications: []
  },
  watch: {
    notifications (current, previous) {
      document.title = '(' + current.length + ')' + document.title.replace(/ *\([^)]*\) */g, "");
    }
  }
})

То, что мы здесь делаем, - это отслеживание изменений в объекте уведомлений. Если это изменится, мы добавляем номер уведомления к названию документа.

document.title.replace(/ *\([^)]*\) */g, "") эта часть удаляет текущий счетчик уведомлений перед обновлением с новым счетчиком.

Ограничения для этого подхода:

Если в скобках есть другие слова (слова), они будут удалены.

Если счетчик уведомлений равен нулю, он будет отображать (0) заголовок, если счет равен 1234, он будет отображать (1234) заголовок. Возможно, вы захотите поставить еще несколько проверок, чтобы не показывать НОЛЬ, и, возможно, сделать 9+, если длина> 9

11
задан Sam Meldrum 16 January 2009 в 14:49
поделиться

2 ответа

Ну, какую архитектуру Вы используете? winforms? asp.net? wpf?

Высокий уровень - это, если у Вас есть объекты, такие как:

public class Person {
    public string Name {get;set;}
    public DateTime DateOfBirth {get;set;}
}

Затем можно заставить обязательную платформу делать всю тяжелую работу, и Вы просто говорите, что Вы хотите связанный - например (winforms):

txtName.DataBindings.Add("Text", person, "Name");

Это устанавливает текстовое свойство текстового поля на основе Имени человека и может обновить Имя человека, когда пользователь изменяет текст.

Мультирекордная привязка более сложна, и на основе IList в winforms/wpf, и IEunmerable в ASP.NET; это позволяет Вам связывать несколько записей (например, в сетку). Если список предлагает дополнительные функции (сортировка, фильтруя и т.д., через IBindingList, IBindingListView, и т.д.), затем больше функциональности могло бы быть доступным.

Привязка также позволяет использование "наблюдателя" - т.е. уведомление об изменении: если Вы косвенно меняете Имя человека, то текстовое поле автоматически обновляется. Это полагается на события - любая из формы public event EventHandler NameChanged;, или (чаще всего теперь) через INotifyPropertyChanged событие (позволяющий одно событие уведомить для нескольких свойств).

Некоторые списки (такой как BindingList<T>, DataView) имейте подобные циклы уведомления.

17
ответ дан 3 December 2019 в 06:23
поделиться

Понятие привязки данных довольно просто; Это позволяет Вам 'связывать' данные, которые содержатся в объекте к визуальному контролю. То управление 'отображает' Ваши данные. Когда пользователь изменяет значение, которое отображено управлением, изменения автоматически сохраняются к основному объекту. Наоборот, когда кто-то изменяет данные в объекте, управление может отобразить новейшее значение.

http://msdn.microsoft.com/en-us/library/ms752347.aspx http://www.akadia.com/services/dotnet_databinding.html

2
ответ дан 3 December 2019 в 06:23
поделиться
Другие вопросы по тегам:

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