2016-11-16 89 views
0

我有這個標記,當它的IsEnabled = false時,我的背景顏色不會保持爲null。我嘗試了一種樣式觸發器,它在變成禁用狀態時會改變它,但它沒有奏效。如何使我的ListView背景顏色爲空時,其禁用GridView?WPF不能用gridview改變listview背景

<ListView Background="{x:Null}" IsEnabled="False"> 
      <ListView.View> 
       <GridView> 
        <GridViewColumn Header="First Name" DisplayMemberBinding="{Binding FirstName}"/> 
        <GridViewColumn Header="Last Name" DisplayMemberBinding="{Binding LastName}"/> 
        <GridViewColumn Header="Email" DisplayMemberBinding="{Binding EmailAddress}"/> 
       </GridView> 
      </ListView.View> 
      <ListView.ItemContainerStyle> 
       <Style TargetType="ListViewItem"> 
        <Setter Property="HorizontalContentAlignment" Value="Stretch"/> 
       </Style> 
      </ListView.ItemContainerStyle> 
     </ListView> 

在App.xaml中

<Style TargetType="ListView"> 
    <Setter Property="BorderThickness" Value="0"/> 

    <Style.Triggers> 
     <Trigger Property="IsEnabled" Value="False"> 
      <Setter Property="Background" Value="Transparent" /> 
     </Trigger> 
    </Style.Triggers> 

</Style> 
+0

你使用MVVM? – Bigeyes

+0

是的,我願意。/\/\ / – shady

回答

1

剛剛嘗試這一點,

<ListView Background="Transparent" IsEnabled="False"> 
    <ListView.Template> 
     <ControlTemplate TargetType="ListView"> 
      <Border Name="Border"       
        BorderThickness="1"> 
       <ScrollViewer Style="{DynamicResource {x:Static GridView.GridViewScrollViewerStyleKey}}"> 
        <ItemsPresenter /> 
       </ScrollViewer> 
      </Border> 
      <ControlTemplate.Triggers> 
       <Trigger Property="IsGrouping" Value="true"> 
        <Setter Property="ScrollViewer.CanContentScroll" Value="false" /> 
       </Trigger> 
       <Trigger Property="IsEnabled" Value="false"> 
        <Setter TargetName="Border" Property="Background" Value="Transparent" /> 
       </Trigger> 
      </ControlTemplate.Triggers> 
     </ControlTemplate> 

    </ListView.Template> 
    <ListView.View> 
     <GridView> 
      <GridViewColumn DisplayMemberBinding="{Binding FirstName}" Header="First Name" /> 
      <GridViewColumn DisplayMemberBinding="{Binding LastName}" Header="Last Name" /> 
      <GridViewColumn DisplayMemberBinding="{Binding EmailAddress}" Header="Email" /> 
     </GridView> 
    </ListView.View> 
    <ListView.ItemContainerStyle> 
     <Style TargetType="ListViewItem"> 
      <Setter Property="HorizontalContentAlignment" Value="Stretch" /> 
     </Style> 
    </ListView.ItemContainerStyle> 
</ListView>