2017-10-18 67 views
0

我一直在玩這個一段時間,我無法使它工作。基本上,我有一個圖像和標籤的列表框。我想是改變圖像的邊框的顏色,如果選擇的項目(列表框設置爲多選)當在列表框中選擇項目時設置圖像邊框

這是我迄今爲止...

  <DataTemplate x:Key="ListBox_DataTemplate"> 
        <Grid HorizontalAlignment="Center"> 
      <Grid.RowDefinitions> 
       <RowDefinition Height="220"/> 
      </Grid.RowDefinitions> 

      <Border x:Name="thumbBorder" BorderThickness="8" 
       CornerRadius="8"> 
       <Border.Style> 
        <Style TargetType="Border"> 


          <Style.Triggers> 
           <DataTrigger Binding="{Binding isSelected, 
            ElementName=lb_images}" Value="True"> 
           <Setter Property="BorderBrush 
               Value="SteelBlue"/> 
          </DataTrigger> 
          <DataTrigger Binding="{Binding isSelected, 
            ElementName=lb_images}" Value="False"> 
           <Setter Property="BorderBrush" 
               Value="Yellow"/> 
          </DataTrigger> 

         </Style.Triggers> 

         </Style> 

        </Border.Style> 

       <Image Width="170" Height="190" Source="{Binding Thumbnail}" 
HorizontalAlignment="Center" 
              VerticalAlignment="Top" 
x:Name="thumb"/> 
      </Border> 

但是,當我選擇該項目時沒有任何反應。 IIm真的卡住了,所以任何想法都會受到歡迎。

感謝

回答

0

你DataTrigger應該使用RelativeSource綁定到ListBoxItem的容器元素,並使用正確的屬性路徑IsSelected

<DataTemplate x:Key="ListBox_DataTemplate"> 
    <Border BorderThickness="8"> 
     <Border.Style> 
      <Style TargetType="Border"> 
       <Setter Property="BorderBrush" Value="Yellow"/> 
       <Style.Triggers> 
        <DataTrigger Binding="{Binding IsSelected, 
           RelativeSource={RelativeSource AncestorType=ListBoxItem}}" 
           Value="True"> 
         <Setter Property="BorderBrush" Value="SteelBlue"/> 
        </DataTrigger> 
       </Style.Triggers> 
      </Style> 
     </Border.Style> 
     <Image Source="{Binding Thumbnail}"/> 
    </Border> 
</DataTemplate> 
+0

這是真棒!它很棒! 感謝您的幫助。 – user3212543

相關問題