0
我對WPF很新穎,我正嘗試使用MVVM light構建一個相當簡單的應用程序。基於屬性的樣式列表項
在我MainWindow.xaml(圖)我有這樣的:
<ListBox ItemsSource="{Binding InstalledVersions}"
ItemTemplate="{StaticResource VersionsDataTemplate}"
Style="{StaticResource VersionsStyle}"
ItemContainerStyle="{StaticResource VersionItemStyle}"/>
哪裏InstalledVersions是InstalledVersionViewModel
的在我MainWindowResources.xaml我有這個(簡體)的列表:
<DataTemplate x:Key="VersionsDataTemplate"
DataType="{x:Type viewmodels:InstalledVersionViewModel}">
<Grid>
<TextBlock Text="{Binding VersionNumber}" />
<TextBlock Text="{Binding FolderPath}" />
</Grid>
</DataTemplate>
<Style x:Key="VersionsStyle"
TargetType="{x:Type ListBox}">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
<Setter Property="VerticalContentAlignment" Value="Center" />
</Style>
<Style x:Key="VersionItemStyle"
TargetType="{x:Type ListBoxItem}">
<Setter Property="Background" Value="White" />
</Style>
我希望有不同的背景,取決於我的InstalledVersionViewModel的「IsActive」屬性。
我想這(以及它的一些變化)添加到我的VersionItemStyle,但(我懷疑,主要是因爲我不明白我在做什麼),這是行不通的:
<Style.Triggers>
<Trigger Property="{Binding Path=DataContext.IsActive, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type viewmodels:InstalledVersionViewModel}}}" Value="True">
<Setter Property="Background" Value="Red" />
</Trigger>
</Style.Triggers>
謝謝!
真棒,謝謝! – thomasb