Если я предполагаю, что ваше фактическое требование верно, то все, что вам нужно, это все 50 меток и текстовых блоков, которые должны быть привязаны к контексту данных, который является VendorObject
из _this
объекта. Хотя я не мог догадаться, что такое _this
объект.
Ну, DataContext
- это Inherited Dependency Property (IDP)
, что они имеют в виду, когда визуальный родительский объект установлен с контекстом данных, его контекст данных получают все дочерние элементы ниже этого визуального элемента.
Таким образом, если вы поместите немного Panel
в свое окно и один раз установите его контекст данных с привязкой DataContext="{Binding ElementName=_this, Path=VendorObject}"
, а затем поместите все эти 50-100 текстовых блоков и меток под этой панелью, они автоматически получат этот объект вендора как контекст данных.
So
<StackPanel DataContext="{Binding ElementName=_this, Path=VendorObject}">
<TextBlock Text="{Binding Path=VendorName}" />
<TextBlock Text="{Binding Path=VendorId}" />
<TextBlock Text="{Binding Path=VendorLocation}" />
.... <!--Put all the 50 UI items here to use same data context -->
</StackPanel>
Надеюсь, я правильно угадал, что тебе нужно.
Теперь отвечаю на следующий вопрос,
Так как я могу определить DataContext в моем?
<Window.Resources></Window.Resources>
Ты не можешь. Но вы можете создать экземпляр класса VendorObject
и предоставить ему ресурс Key
, но это просто плохой дизайн.