Я использую мой конвертер так:
<ControlTemplate TargetType="{x:Type TabItem}">
<Border Name="Border"
Background="{Binding
Path=ConversationState,
Converter={StaticResource conversationStatusConverter},
Mode=TwoWay,
NotifyOnSourceUpdated=true,
ValidatesOnExceptions=True,
UpdateSourceTrigger=PropertyChanged}" >
Это мое определение триггеров:
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="Border" Property="Background" Value="DeepPink" />
</Trigger>
<Trigger Property="IsSelected" Value="False">
<Setter TargetName="Border" Property="Background" Value="LightGray" />
</Trigger>
</ControlTemplate.Triggers>
И мой метод обратного преобразования:
public object ConvertBack(object value, Type targetType, object parameter,
CultureInfo culture)
{
if (value.ToString() == "DeepPink")
return ConversationStatus.Active;
else if (value.ToString() == "Orange")
return ConversationStatus.UnseenMessage;
else if (value.ToString() == "LightGray")
return ConversationStatus.Inactive;
else return DependencyProperty.UnsetValue;
}
Когда выбрана вкладка, фон становится темно-розовым, но модель никогда не изменяется, статус остается прежним.Работает источник-цель (преобразуется нормально), цель-источник в триггерах через свойство isselected элемента tab, ничего не делает для модели.большое спасибо!