Как я могу факторизовать DataTemplate, обязательный в WPF?

Я использовал DevC ++, когда изучал C много лет назад. Это был отличный инструмент, хотя я давно его не видел, поэтому не уверен, в каком он сейчас состоянии.

http://www.bloodshed.net/devcpp.html

12
задан Dave Clemmer 2 August 2011 в 15:47
поделиться

2 ответа

Ненавижу отвечать на свои вопросы, но для полноты, вот мое решение.

<ListBox ItemsSource="{Binding}">
  <ListBox.Resources>
    <ControlTemplate x:Key="textBoxControlTemplate" TargetType="ContentControl">
      <TextBox Text="{TemplateBinding Content}" /> 
    </ControlTemplate>
  </ListBox.Resources>
  <ListBox.ItemTemplate>
    <DataTemplate>
      <ContentControl Content="{Binding Name}" Template="{StaticResource textBoxControlTemplate}" />
    </DataTemplate>
  </ListBox.ItemTemplate>
</ListBox>

Это, конечно, очень надуманный пример . В моем собственном приложении я не помещаю текстовые поля внутри списка. В списке это не очень полезно, но представьте, что это внутри DataGrid, где каждый столбец может отображаться аналогичным образом, но привязан к другому свойству.

4
ответ дан 2 December 2019 в 23:43
поделиться

Create a UserControl and use it within the DataTemplate.

<DataTemplate>
    <local:MyComplexUserControl DataContext="{Binding Name}"/>
</DataTemplate>

and within the UserControl:

<StackPanel>
  <TextBlock>Value:</Text>
  <TextBox Text="{Binding}"/>
</StackPanel>

Have a separate DataTemplate with its own binding for each occasion.

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

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