我有一個ItemsControl控件顯示一些按鈕。 當我點擊其中一個按鈕時,我必須顯示所選資源的某些細節(綁定到按鈕)。如何使用觸發器突出顯示XAML中的按鈕?
所以當點擊按鈕時,我在ViewModel上設置了一個名爲SelectedResource的屬性。
這工作正常,我想要做的是突出顯示按鈕點擊。
我有一個控件模板爲我的按鈕,如下:
<ControlTemplate x:Key="ResourceButtonTemplate" TargetType="{x:Type ButtonBase}">
<Border Name="SelectedButtonBorder"
CornerRadius="3">
<Border x:Name="border"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="3"
Background="{TemplateBinding Background}"
SnapsToDevicePixels="True">
<StackPanel Orientation="Horizontal" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}">
<Image Source="{Binding Type.Value, Converter={converter:ResourceTypeToStringConverter}}"></Image>
<ContentPresenter x:Name="contentPresenter"
ContentTemplate="{TemplateBinding ContentTemplate}"
Content="{TemplateBinding Content}"
ContentStringFormat="{TemplateBinding ContentStringFormat}"
Focusable="False"
Margin="{TemplateBinding Padding}"
RecognizesAccessKey="True"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</StackPanel>
</Border>
</Border>
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding SelectedResource}" Value="">
<Setter TargetName="SelectedButtonBorder" Property="BorderBrush" Value="Red" />
<Setter TargetName="SelectedButtonBorder" Property="BorderThickness" Value="2" />
</DataTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
我已經試過了DataTrigger,但我不能datatrigger的價值屬性綁定。
那麼,有沒有辦法做到這一點只使用XAML?
編輯:
我不想比較SelectedResource爲空字符串,其實我不知道是什麼來比較。我試圖將SelectedResource對象的一個屬性與按鈕上顯示的文本進行比較。
是選定的資源一個字符串,發佈cs。 SelectedResource的代碼。 –
難道你沒有在輸出窗口中看到一個錯誤,說'對象???(可能'Button')'找不到屬性'SelectedResource'? – Sheridan
Selected不是一個字符串,但它有一個字符串屬性,我用它來顯示按鈕的內容。我試圖比較兩個,但它沒有工作 – vintem