
Untitled
By: a guest on
Jul 4th, 2012 | syntax:
None | size: 1.34 KB | hits: 12 | expires: Never
wpf style trigger on dynamic path
<Style x:Key="OptionalBackground"
TargetType="{x:Type DataPresenter:CellValuePresenter}"
BasedOn="{StaticResource OptionalFieldCellPresenter}">
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self},
Path=Record.DataItem.IsEditAllowed}"
Value="False">
<Setter Property="Background" Value="{StaticResource ReadOnlyField}" />
</DataTrigger>
</Style.Triggers>
</Style>
<local:BackgroundStyle
x:Key="OptionalBackground"
TargetType="{x:Type DataPresenter:CellValuePresenter}"
BasedOn="{StaticResource OptionalFieldCellPresenter}"
Path="Record.DataItem.IsEditAllowed"
Value="{StaticResource ReadOnlyField}"/>
public class BackgroundStyle : Style, ISupportInitialize
{
public string Path { get; set; }
public object Value { get; set; }
public void BeginInit() { }
public void EndInit()
{
var trigger = new DataTrigger
{
Binding = new Binding
{
Path = new PropertyPath(Path),
RelativeSource = new RelativeSource(RelativeSourceMode.Self)
},
};
trigger.Setters.Add(new Setter(Control.BackgroundProperty, Value));
Triggers.Add(trigger);
}
}