Michael
Michael

Reputation: 1879

Bind Path in ResourceDictionary's dependant on VM property

I've created a ResourceDictionary that defines a bunch of System.Windows.Shapes.Path that are used in the ContentPresenter of a Button ControlTemplate.

I'd like to change one of the Paths out based on a ViewModel property. If true the button uses one path from the ResourceDictionary, if false a different one.

Currently I just reference a StaticResource in the xaml to point directly to the path I want displayed.

What's the best way to do this?

Upvotes: 0

Views: 47

Answers (1)

Versatile
Versatile

Reputation: 459

You would have to modify the content template of the button in style by referring to the elements from you resource dictionary.

Something like this: <Button.Style> <Style TargetType="Button"> <Setter Property="ContentTemplate" Value="{StaticResource cp2}"></Setter> <Style.Triggers> <Trigger Property="IsMouseOver" Value="True"> <Setter Property="ContentTemplate" Value="{StaticResource cp1}"></Setter> </Trigger> </Style.Triggers> </Style> </Button.Style>

I have used mouse over property as my trigger to change the content template. You can use DataTrigger instead of Trigger

Upvotes: 1

Related Questions