当我使用以下内容时,我看到一个工具提示,但它不是显示为ListView,而是显示为System.Window.DataTemplate的单个工具提示。
我想我已经解释了要使用的DataTemplate ...为什么下面没有显示DataTemplate的结果而只是'类型'
<DataTemplate DataType="{x:Type ToolTip}" x:Key="Tool">
<ListView DataContext="{Binding Path=MyMix}" ItemsSource="{Binding Path=Mix}" ItemTemplate="{StaticResource MyTemplate}" />
</DataTemplate>
<DataTemplate x:Key="MyButtons">
<StackPanel>
<ComboBox SelectedIndex="{Binding Path=MyIndex, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, NotifyOnSourceUpdated=True}" ItemsSource="{Binding Path=MyCollection}" DisplayMemberPath="Name" Binding.SourceUpdated="ComboBox_SourceUpdated" ToolTip="{StaticResource Tool}">
</ComboBox>
</StackPanel>
</DataTemplate>
答案 0 :(得分:0)
从我所看到的,你没有实例化ToolTip
的实例,所以没有创建。 (模板不会实现ToolTip
,而在ComboBox中只有ToolTip
属性的赋值,它有效地将TypeConverter调用到DataTemplate
类。)
我试过这段代码......
<Grid.Resources>
<DataTemplate DataType="{x:Type MyMix}">
<ToolTip>
<ListView ItemsSource="{Binding Mix}"></ListView>
</ToolTip>
</DataTemplate>
</Grid.Resources>
但这给了我这个错误:&#39; ToolTip&#39;不能有逻辑或视觉父母
我不确定的另一件事:Aren&#39; t DataTemplates
更多用于&#34;源对象&#34;,这意味着数据?在您的代码中,用于DataTemplate
的类型是可视类,ToolTip
。
<强>解决方案吗
所以我最终直接在ComboBox
上设置工具提示。
这对你好吗?
我不确定我是否正确理解了您的数据模型。
它有效,但因为它不是模板,所以此工具提示在其他任何地方都无法重复使用。
<StackPanel>
<ComboBox ItemsSource="{Binding MyCollection}" DisplayMemberPath="Name">
<ComboBox.ToolTip>
<ListView ItemsSource="{Binding Path=MyMix.Mix}" ></ListView>
</ComboBox.ToolTip>
</ComboBox>
</StackPanel>