데이터 emplate 내부에 데이터 바운드 스택 패널을 표시합니다
-
12-09-2019 - |
문제
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>
제휴하지 않습니다 StackOverflow