WPF怎么寻找在ItemTemplate内部的各种控件
展开全部
看得出你的意思,你使用了mvvm模式,然后希望在viewmodel内部切换前端的DataTemplate。因为viewmodel理论上是不引用前端的,所以你肯定无法访问前端任何一个DataTemplate。所以你可以这样做:
1. 把你需要在ViewModel中切换的DataTemplate切换到程序的资源字典中,资源字典也就是wpf的ResourceDictionary,你的ViewModel是可以访问到的。
2. 在ViewModel中设置一个String类型的属性,例如SelectedTemplate,用于之后的模板切换。
3. 在你前端的ItemTemplate位置绑定这个SelectedTemplate属性,但你需要一个Converter来辅助样式的切换。
<ListBox ItemTemplate ="{Binding Path=SelectedTemplate, Converter={StaticResource StringToDataTemplateConverter}}">
1. 把你需要在ViewModel中切换的DataTemplate切换到程序的资源字典中,资源字典也就是wpf的ResourceDictionary,你的ViewModel是可以访问到的。
2. 在ViewModel中设置一个String类型的属性,例如SelectedTemplate,用于之后的模板切换。
3. 在你前端的ItemTemplate位置绑定这个SelectedTemplate属性,但你需要一个Converter来辅助样式的切换。
<ListBox ItemTemplate ="{Binding Path=SelectedTemplate, Converter={StaticResource StringToDataTemplateConverter}}">
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询