Все, что он делает - это создает ссылку на элемент в сгенерированном коде, чтобы вам было легче ссылаться на него в вашем коде. Пример: (из файла сгенерированного кода MainWindow.g.cs, который будет находиться в скрытой папке «obj» вашего проекта)
#line 6 "..\..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Button button1;
...
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
switch (connectionId)
{
case 1:
this.button1 = ((System.Windows.Controls.Button)(target));
return;
}
this._contentLoaded = true;
}
Если вы не дадите ему имя, "((System.Windows.Controls.Button) (target))" будет по-прежнему создаваться во время выполнения, у вас просто не будет переменной "this.button1" указывая на это.