Я добавил слушателя для события фокуса и использовал один сфокусированный объект для ввода.
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">
DataContext в основном используется в формах, элементах управления и т. Д.
ItemSource - это относительный путь для привязки данных к этому DataContext.
Например, когда вы создаете форму для редактирования сведений о персоне тогда DataContext будет Person, и каждый из элементов управления в форме будет привязан к отдельному свойству этого объекта, например, Name, Date of Birth и т. д.
Во втором примере вы можете не указывать ItemsSource = {Binding}. Вы устанавливаете ItemsSource непосредственно на значение в вашем коде позади. Вам не нужно связывать здесь. В первом примере вы устанавливаете DataContext и используете привязку для его повторного извлечения из DataContext.
Но это не имеет значения… оба метода работают нормально…
Я использую следующее thumb of rule: установите его в коде позади, если у меня есть доступная коллекция .. Установите его в какой-то режим связывания, если мне нужно преобразовать коллекцию, чтобы я мог использовать IValueConverter для выполнения работы ...