我用我的轉換是這樣的:ConvertBack不解僱
<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;
}
當選項卡被選中,背景變成深粉色,但模型從不修改,狀態保持不變。源到目標作品(轉換成OK),通過選項卡項目的isselected屬性在觸發器內進行目標定位,不對模型做任何事情。 非常感謝!
如果狀態保持與以前一樣,轉換(轉發)如何工作。一個觸發器級聯到一個轉換器 - 我不認爲它是用於這種方式。我不明白你爲什麼不能處理TabItem的IsSelected。 – Paparazzi 2012-02-12 21:33:32