Различие betwwen Datacontext и ItemSource в WPF

Я добавил слушателя для события фокуса и использовал один сфокусированный объект для ввода.

var focused, inputs=document.getElementsByTagName('INPUT');
for(i = 0; i < inputs.length; i++) {
   
        inputs[i].addEventListener("focus", function(){
            focused = this;
        });
    
}

  function autoFill() {
    var input = document.getElementsByTagName("INPUT");
    for(i = 0; i < input.length; i++) {
      if(input[i] === focused){
           input[i].value += "auto filled";
      }
    }

    
  }
<input type="input">
<button type="button" onclick="autoFill()">fill it!</button>
<input type="input">

5
задан Community 23 May 2017 в 11:48
поделиться

2 ответа

DataContext в основном используется в формах, элементах управления и т. Д.

ItemSource - это относительный путь для привязки данных к этому DataContext.

Например, когда вы создаете форму для редактирования сведений о персоне тогда DataContext будет Person, и каждый из элементов управления в форме будет привязан к отдельному свойству этого объекта, например, Name, Date of Birth и т. д.

9
ответ дан 13 December 2019 в 19:35
поделиться

Во втором примере вы можете не указывать ItemsSource = {Binding}. Вы устанавливаете ItemsSource непосредственно на значение в вашем коде позади. Вам не нужно связывать здесь. В первом примере вы устанавливаете DataContext и используете привязку для его повторного извлечения из DataContext.

Но это не имеет значения… оба метода работают нормально…

Я использую следующее thumb of rule: установите его в коде позади, если у меня есть доступная коллекция .. Установите его в какой-то режим связывания, если мне нужно преобразовать коллекцию, чтобы я мог использовать IValueConverter для выполнения работы ...

2
ответ дан 13 December 2019 в 19:35
поделиться
Другие вопросы по тегам:

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