Как создать свободный шаблон, который состоит из пары табличных данных

Я пытаюсь создать свободную страницу, которая создается другим шаблоном данных.

Например:

У меня два DataTemplates,

  • DataTemplate1 => Кнопка и текстовый блок в StackPanel. Подобно:

    stackpanel << [Button] textblockwithtext >>
    
  • DataTemplate2 => Текстовый блок и комбинированный список в StackPanel. Подобно:

    stackpanel << 11111111thisisnewtextblock >> [ComboBox]
    

И после того, как я объединю их, вот этот третий шаблон (примерно так:

stackpanel << DataTemplate1 DataTemplate 2 >>

Я получу что-то, что не свободно. Это может быть все в одной строке,

или в две строки, но он будет разрываться посередине, как:

кнопка text1 \ n
text2 \n combox.

и я хочу что-то вроде этого: кнопка \n text1 и половина text2 \n последняя половина text2 и поле со списком. (по количеству места в окне).

Итак, я хотел бы найти рабочий способ обтекания, когда я использую пару таблиц данных (панель обертки - не то, что я ищу. Я ищу способ объединения нескольких таблиц данных - пусть они обертываются друг с другом, чтобы они не будут совершенно другой частью).

Я пытался работать с run в Document, но создать таблицу данных для них практически невозможно.

Есть идеи?

Благодарю.

1 ответ

Достаточно близко?

 <DataTemplate>
      <Grid>
         <Grid.RowDefinitions>
              <RowDefinition />
              <RowDefinition />
              <RowDefinition />
         </Grid.RowDefinitions>

         <Grid.ColumnDefinitions>
              <ColumnDefinition/>
              <ColumnDefinition/>
         </Grid.ColumnDefinitions>


         <Button Grid.ColSpan="2" />
         <TextBlock  Grid.Row="1" Grid.ColSpan="2">
               <Run Text="{Binding Text1}" />
               <Run Text="{Binding Text2 , Converter={StaticResource StringToSubStringConverter,ConverterParameter=0}}" /> 
         </TextBlock>

         <Text Text="{Binding Text2 , Converter={StaticResource StringToSubStringConverter,ConverterParameter=1}}" Grid.Row="2" 

         <ComboBox Grid.Column="1" Grid.Row="2" />

      </Grid>  
 </DataTemplate>

1 и 0 для параметра преобразователя означают нижнюю и верхнюю половину.

Другие вопросы по тегам