Wpf 无法在设计时指定DataTrigger值属性,有何替代方法
我有一个树视图,点击每个树节点,树节点的细节将显示在树视图的右侧。每个treenode都有自己的viewmodel。下面的代码显示了我如何显示详细信息: 当Value=“可在设计时间指定”(我有11个)时,一切正常。但是我有一个treenode,它的子节点具有不同的名称(请参见下面的代码Value=“不能在设计时指定”),因为它们是从数据库中表的两列中动态检索的,在这里列出4000个或更多的子节点是不现实的 Name=“J”+tablename.Label+”+tablename.SubLabelWpf 无法在设计时指定DataTrigger值属性,有何替代方法,wpf,treeview,datatrigger,Wpf,Treeview,Datatrigger,我有一个树视图,点击每个树节点,树节点的细节将显示在树视图的右侧。每个treenode都有自己的viewmodel。下面的代码显示了我如何显示详细信息: 当Value=“可在设计时间指定”(我有11个)时,一切正常。但是我有一个treenode,它的子节点具有不同的名称(请参见下面的代码Value=“不能在设计时指定”),因为它们是从数据库中表的两列中动态检索的,在这里列出4000个或更多的子节点是不现实的 Name=“J”+tablename.Label+”+tablename.SubLabe
<ContentControl Name="DetailContentControl"
Content="{Binding ElementName=myTreeview, Path=SelectedItem, Mode=OneWay}">
<ContentControl.ContentTemplate>
<DataTemplate>
<ContentControl Name="CC" Content="{Binding }" />
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding Path=Name}" Value="DXHeader">
<Setter TargetName="CC" Property="ContentTemplate" Value="{StaticResource DXHeaderDetailsTemplate }"/>
</DataTrigger>
<DataTrigger Binding="{Binding Path=Name}" Value="Don't know at designed time">
<Setter TargetName="CC" Property="ContentTemplate" Value="{StaticResource MyDetailsTemplate }"/>
</DataTrigger>
.....
</DataTemplate.Triggers>
</DataTemplate>
</ContentControl.ContentTemplate>
</ContentControl>
.....
如果我能这样做,就不会有问题:
但是,DataTrigger.Value属性不支持绑定表达式
提前谢谢你 当触发器基于多个动态值时,请使用 在本例中,您将使用绑定向转换器传递您的名称和运行时值,并返回类似于true/false的值
<DataTrigger Value="True">
<DataTrigger.Binding>
<MultiBinding Converter="{StaticResource IsNameEqualValueConverter}">
<Binding Path="Name" />
<Binding Path="PathToRuntimeValue" />
</MultiBinding>
</DataTrigger.Binding>
</DataTrigger>
谢谢Rachel,我去掉了datatrigger,改为为为ContentTemplate编写了一个值转换器类,从而使它工作起来。