[WPF]关于DataTemplate,求探讨,求帮助。

平安祥瑞wh 2012-05-21 10:36:34
已经实现的功能如下:
1.ListView绑定一个数据源(List)
2.采用DataTemplate使得数据源中的项按需显示。
现在要实现的功能是:
点击ListView中的某一项,然后显示其数据源详细信息。(比之前的绑定显示更多的内容)
初步打算用Trigger,但是不知道怎么显示。求帮助。
...全文
137 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
colinware 2012-05-22
  • 打赏
  • 举报
回复
在ItemTemplate中定义Trigger,判断IsSelected,然后改变DataTemplate就可以了。
或者自定义ItemTemplateSelector
平安祥瑞wh 2012-05-22
  • 打赏
  • 举报
回复

<DataTemplate x:Key="myDt" DataType="Person">
<StackPanel>
<Label Margin="5" Content="{Binding Path=Name}"></Label>
<TextBox Margin="5" Text="{Binding Path=Age}"></TextBox>
</StackPanel>
</DataTemplate>

<DataTemplate x:Key="myDt2" DataType="Person">
<StackPanel>
<Label Margin="5" Content="{Binding Path=Name}"></Label>
<Slider Margin="5" Minimum="0" Maximum="100" Value="{Binding Path=Age}"></Slider>
</StackPanel>
</DataTemplate>

<ListBox Name="listbox1" ItemTemplate="{Binding Source={StaticResource myDt}}">

</ListBox>


listbox1.ItemsSource = new List<Person>
{
new Person {Name = "nnn", Age = 1},
new Person {Name = "Tom", Age = 80}
};


贴上源码,大家一目了然。
我想在显示的时候用myDt,选中某项之后用myDt2。
求Help。谢谢。


平安祥瑞wh 2012-05-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
你是想画面迁移呢?还是变换ItemTemplate?
[/Quote]
谢谢,我是想变换ItemTemplate

[Quote=引用 2 楼 的回复:]
在ItemTemplate中定义Trigger,判断IsSelected,然后改变DataTemplate就可以了。
或者自定义ItemTemplateSelector
[/Quote]
改变DataTemplate不会。
自定义ItemTemplateSelector不懂,并且我希望界面都放在xaml,不要在代码中写什么。
机器人 2012-05-21
  • 打赏
  • 举报
回复
你是想画面迁移呢?还是变换ItemTemplate?

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧