通过绑定更改子视图
可能的重复:
更改 ViewModel 的视图
我有一个视图:
<UserControl ...>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<ComboBox ItemSource="{Binding Items}" />
**<???>**
</Grid>
</UserControl>
我有 ViewModel:
public class VM
{
// ...
public List<Entities> Items { get; set;}
public String Title { get; set; }
}
并且我有一些这样的子视图:
<UserControl ...>
<TextBlock Text="{Binding Title}" />
</UserControl>
当用户从主视图中的 ComboBox
中选择一些值时,我需要放置在第二列中 主视图的一些子视图
。如果用户在ComboBox
中选择其他值,则另一个subView
将替换现有的subView
。
怎么办呢?
Possible Duplicate:
Changing the View for a ViewModel
I have a view:
<UserControl ...>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<ComboBox ItemSource="{Binding Items}" />
**<???>**
</Grid>
</UserControl>
I have ViewModel:
public class VM
{
// ...
public List<Entities> Items { get; set;}
public String Title { get; set; }
}
and I have a few subview's like this:
<UserControl ...>
<TextBlock Text="{Binding Title}" />
</UserControl>
When user selecta some value from ComboBox
in main View, I need to place in second column
of main View some of subViews
. If user selects other value in ComboBox
, another subView
sould replace existing subView
.
How can it be done?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我通常只使用
ContentControl
并让它根据 DataTemplates 确定要绘制哪个视图I usually just use a
ContentControl
and let it figure out which view to draw based on DataTemplates您可以绑定到
ComboBox
的SelectedItem
,例如,如果您有不同的视图,请使用
ContentTemplateSelector
而不是硬编码一个模板。You could bind to the
SelectedItem
of theComboBox
, e.g.If you have differnt views use the
ContentTemplateSelector
instead of hardcoding one template.