有这样的看法:
<Window x:Class="SampleMVVM.Views.MainView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:c="clr-namespace:SampleMVVM.Commands"
Title="Main Window" Height="400" Width="350">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<ListView ItemsSource="{Binding BooksList}" IsSynchronizedWithCurrentItem="True" Opacity="0.5">
<ListView.ItemTemplate>
<DataTemplate>
<Border BorderBrush="Bisque" BorderThickness="1" Margin="10">
<StackPanel Margin="10">
<TextBlock Text="{Binding Title}" FontWeight="Bold"/>
<TextBlock Text="{Binding Author}" />
<StackPanel Orientation="Horizontal">
<TextBlock Text="Осталось:" />
<TextBlock Text="{Binding Count, Mode=TwoWay}" FontWeight="Bold" Margin="10,0"/>
<TextBlock Text="шт" />
</StackPanel>
</StackPanel>
</Border>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
<ContentControl Grid.Column="1" Content="{Binding BooksList}">
<ContentControl.ContentTemplate>
<DataTemplate>
<Border BorderBrush="Bisque" BorderThickness="1" Margin="10">
<StackPanel Margin="10">
<TextBlock Text="Название:" />
<TextBox Text="{Binding Title, UpdateSourceTrigger=PropertyChanged}" Margin="0,0,0,10"/>
<TextBlock Text="Автор:"/>
<TextBox Text="{Binding Author, UpdateSourceTrigger=PropertyChanged}" Margin="0,0,0,10"/>
<StackPanel Orientation="Horizontal">
<Button Content="Выдать" Command="{Binding GiveItemCommand}" Margin="10,0" />
<Button Content="Забрать" Command="{Binding GetItemCommand}" Margin="10,0" />
</StackPanel>
</StackPanel>
</Border>
</DataTemplate>
</ContentControl.ContentTemplate>
</ContentControl>
</Grid>
</Window>
如何在关注“ContentControl”时将“ListView”的透明度更改为 0.5?
更新。
附加问题:如何通过模型改变透明度?试图这样做。在模型中贴出代码:
private bool _isHidden;
public bool IsHidden
{
get { return _isHidden; }
set
{
_isHidden = value;
OnPropertyChanged("IsHidden");
}
}
public ICommand TestCommand
{
get
{
return new DelegateCommand(new Action(() => {
IsHidden = !_isHidden;
}));
}
}
在View中在ListView中添加了一个按钮和代码:
<ListView.Style>
<Style TargetType="ListView">
<Stye.Triggers>
<!-- если у элемента с именем CC фокус внутри, -->
<DataTrigger Binding="{Binding Path=IsHidden}" Value="True">
<!-- устанавливаем Opacity в 0.5 -->
<Setter Property="Opacity" Value="0.5"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ListView.Style>
通过单击按钮,在代码中我看到 IsHidden 发生了变化,但 ListView 没有变得透明。