문제

WPF의 ListBox에 데이터베이닝하고있는 객체가 있습니다. 최종 결과는 다음과 같습니다.

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

기본적으로 전체 변수에 대한 DataTemplate이 있는데 Opt/Value Combo에는 자체 DataTemplate이 있습니다. 값 목록을 가능한 한 간단하게 표시하려고합니다.

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

값에 대한 바인딩은 현재 a입니다 <Grid> 2로 <Label>'S와 ListView에는 테두리 스타일링, 선택 등이 보지 않는 많은 기능이 있습니다.

나는 아이템을 스택 패널에 데이터베이션하려고 시도했지만 XAML에서 작동하지 못했습니다. 또 다른 해결책은 내가하고있는 일을하고 다시 작성하는 것입니다. <Style> ListView의 경우. 올바른 방법에 대한 제안이 있습니까?

도움이 되었습니까?

해결책

확실히 당신이 할 수있는 일처럼 들립니다. 리스트 박스, 또는 Items Control을 선택할 수없는 경우. 우리는 또한 사용할 수 있습니다 issharedsizescope 첨부 된 속성은 우리의 열을 형식화하고 심지어 유지하기 위해 첨부 된 속성. 또한 ListBox 링크의 하단에있는 상속 하이 아치를 살펴보면 다른 시나리오에 필요한 목록 유형을 결정하는 데 도움이됩니다.

다음과 같은 것을 시도하십시오.

<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>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top