2010-10-21 27 views
0

我正在嘗試創建一個菜單系統,用於更改面板的內容模板在面板關閉之後,可視狀態更改但面板重新打開之前關閉面板(想象一個幻燈片輸入/輸出過濾器)。我希望能達到這個數據使用觸發器的組合,但我沒有喜悅:(有些代碼已經被中省略爲簡潔起見,但我的觸發設置如下所示:MultiDataTriggers和VisualState

<ContentControl x:Name="contentControl" Content="{Binding SelectedThing}" 
           DataContext="{Binding}" Width="200"> 
        <ContentControl.ContentTemplate> 
         <DataTemplate> 
          <ContentControl Name="cc" 
              Content="{Binding}" /> 
          <DataTemplate.Triggers> 

           <MultiDataTrigger> 
            <MultiDataTrigger.Conditions> 
             <Condition Value="People" 
                Binding="{Binding Path=Name}"> 
             </Condition> 

             <Condition Value="0" 
                Binding="{Binding ElementName=contentControl,Path=Width}"> 
             </Condition> 
            </MultiDataTrigger.Conditions> 
            <Setter TargetName="cc" 
              Property="ContentTemplate" 
              Value="{StaticResource PeopleTemplate}" /> 
           </MultiDataTrigger> 

....

的觸發正確地更改模板時我忽略對ContentControl中寬度結合,但我不能確定爲什麼(寬度是通過視覺狀態的變化動態)?

任何想法?

感謝

+0

忘了提,我用重新打開面板視覺狀態的進一步變化。 – Sidebp 2010-10-21 17:13:59

回答

0

嘗試將Path = Width更改爲Path = ActualWidth。

我假設觸發未觸發,因爲Width屬性是不實際的報告,這是0

您可以使用snoop來證實這一點http://snoopwpf.codeplex.com/