AdaptiveTrigger und DataTemplate
Wird AdaptiveTrigger Arbeit in einem DataTemplate?
Das ist mein code, den ich bin mit anpassen meine ShellNavigation, es ist in Ordnung, außer die visuelle Zustände. Sie wird nicht ausgelöst, nichts.
<shell:ShellHeadView x:Key="ShellHeadView_01">
<shell:ShellHeadView.ContentTemplate>
<DataTemplate>
<Grid Margin="20,0">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup>
<VisualState x:Name="GreenBackgroundVisualState">
<VisualState.Setters>
<Setter Target="headViewLeft.Background" Value="Green" />
</VisualState.Setters>
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="1000"/>
</VisualState.StateTriggers>
</VisualState>
<VisualState x:Name="OrangeBackgroundVisualState">
<VisualState.Setters>
<Setter Target="headViewLeft.Background" Value="Orange" />
</VisualState.Setters>
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="2000"/>
</VisualState.StateTriggers>
</VisualState>
<VisualState x:Name="RedBackgroundVisualState">
<VisualState.Setters>
<Setter Target="headViewLeft.Background" Value="Red" />
</VisualState.Setters>
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="3000"/>
</VisualState.StateTriggers>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid Grid.Column="0" x:Name="headViewLeft" Width="100" Height="90">
</Grid>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen, wickeln Sie Ihre
DataTemplate
innerhalb einerUserControl
wie diese -Sieht aus wie jede
Control
das hat eineContent
- Eigenschaft arbeiten. Das ist, warumUserControl
funktioniert, so funktioniert einContentControl
.Also, wenn Sie ersetzen die
UserControl
mit einemContentControl
und geben es leerStyle
. Es sollten auch funktionieren.ListView listView = new ListView(); listView.ItemsSource = source.Articles; listView.Template = ???; listView.IsItemClickEnabled = true; listView.ItemClick += OpenArticle_ItemClick; listView.SelectionMode = ListViewSelectionMode.None;
UserControl
Super funktioniert, aberContentControl
nicht. Immer noch eine tolle Antwort!UserControl
ist der Reiniger für mich... ich kann nicht denken, ein funktioneller Unterschied in diesem Fall zwischenUserControl
undContentControl
.UserControl
ist definitiv bequemer. 🙂ListView
'sDataTemplate
.