Pergunta

Eu tenho objetos que estou banco de dados em uma caixa de listagem no WPF. Aqui está como o resultado final deve ser:

-------------------------------
| Name    | Opt1    |  Value1 |
|         | Opt2    |  Value2 |
|         | Opt3    |  Value3 |
|         | Opt4    |  Value4 |
-------------------------------

Essencialmente, eu tenho um DataTemplate para a variável geral e, em seguida, o combo opt/value possui seu próprio datatemplate. Estou tentando exibir a lista de valores da maneira mais simples possível.

<Label Content="{Binding Path=Identifier.Name, Mode=OneWay}" />
<ListView Grid.Column="1" HorizontalAlignment="Stretch" 
          ItemsSource="{Binding Path=Values, Mode=OneWay}" />

A ligação para valores é atualmente apenas um <Grid> com 2 <Label>'S e ListView possuem muitos recursos que eu não assisto, como o estilo de fronteira, as seleções e outros, quando tudo o que eu realmente quero é poder ser capaz de usar o banco de dados usando uma lista.

Eu tentei banco de dados os itens em um StackPanel, mas não consegui fazê -lo funcionar no XAML. Suponho que outra solução é fazer o que estou fazendo e reescrever o <Style> Para ListView. Alguma sugestão sobre a maneira correta de fazer isso?

Foi útil?

Solução

Certamente parece algo que você pode fazer com um ListBox, ou um itemsControl se você não quiser que eles sejam selecionáveis. Também podemos usar o IsSharedsizescope Propriedade anexada para manter nossas colunas formatadas e uniformes. Além disso, dê uma olhada na alta marca da herança na parte inferior do link da ListBox, deve ajudá -lo a determinar qual tipo de lista você precisa para diferentes cenários.

Tente algo assim:

<DockPanel>
  <Label Content="{Binding Path=Identifier.Name, Mode=OneWay}" />
  <ListBox ItemsSource="{Binding Path=Values, Mode=OneWay}"
           Grid.IsSharedSizeScope="True">
    <ListBox.ItemTemplate>
      <DataTemplate>
        <Grid>
          <Grid.ColumnDefinitions>
            <ColumnDefinition SharedSizeGroup="OptionColumn" />
            <ColumnDefinition SharedSizeGroup="ValueColumn" />
          </Grid.ColumnDefinitions>
          <TextBlock Grid.Column="0" Text="{Binding Option}" />
          <TextBlock Grid.Column="1" Text="{Binding Value}" />
        </Grid>
      </DataTemplate>
    </ListBox.ItemTemplate>
  </ListBox>
</DockPanel>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top