2010-10-21 94 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/