Depend on my value I need to get oldTemplate or newTemplate for selected item on listview. Code doesn't work, I know that, just want to show what I'd like to achieve
<Style TargetType="ListViewItem">
<Style.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsSelected" Value="true" />
<Condition Property="Selector.IsSelectionActive" Value="true" />
<Condition Binding="{Binding Source={x:Static s:Environment.OSVersion.Version.Major}}" Value="5"/>
</MultiTrigger.Conditions>
<Setter Property="Template" Value="{StaticResource SelectedTemplateOld}"/>
</MultiTrigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsSelected" Value="true" />
<Condition Property="Selector.IsSelectionActive" Value="true" />
<Condition Binding="Binding Source={x:Static s:Environment.OSVersion.Version.Major}" Value="6"/>
</MultiTrigger.Conditions>
<Setter Property="Template" Value="{StaticResource SelectedTemplateNew}"/>
</MultiTrigger>
</Style.Triggers>
</Style>
Is there any way to get value from my class and bind template?
Thanks
@edit
I've tried like this: create class
public class BoolTemplate
{
public bool BoolTest
{
get
{
if (Environment.OSVersion.Version.Major < 6)
return true;
else
return false;
}
}
}
Now in xaml declare DataContext for class and change Resources as:
<ListView.DataContext>
<additions:BoolTemplate/>
</ListView.DataContext>
<ListView.Resources>
<Style TargetType="ListViewItem">
<Style.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsSelected" Value="true" />
<Condition Property="Selector.IsSelectionActive" Value="true" />
<Condition Binding="{Binding BoolTest}" Value="true"/>
</MultiTrigger.Conditions>
<Setter Property="Template" Value="{StaticResource SelectedTemplateOld}"/>
</MultiTrigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsSelected" Value="true" />
<Condition Property="Selector.IsSelectionActive" Value="true" />
<Condition Binding="{Binding BoolTest}" Value="true"/>
</MultiTrigger.Conditions>
<Setter Property="Template" Value="{StaticResource SelectedTemplateNew}"/>
</MultiTrigger>
</Style.Triggers>
</Style>
</ListView.Resources>
Gives me error:
Message: Value „Property” must be non-zero.
InerException:
Source: PresentationFramework
StackTrace: w System.Windows.Condition.Seal(ValueLookupType type)
w System.Windows.ConditionCollection.Seal(ValueLookupType type) w System.Windows.MultiTrigger.Seal() w System.Windows.TriggerCollection.Seal() w System.Windows.Style.Seal()