c#-以编程方式在WPF中设置ContentControl的内容
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c#-以编程方式在WPF中设置ContentControl的内容,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1931字,纯文字阅读大概需要3分钟。
内容图文
![c#-以编程方式在WPF中设置ContentControl的内容](/upload/InfoBanner/zyjiaocheng/678/06c4c9ff505042d091d6b620767e5e50.jpg)
我正在尝试自学WPF,在花了两个多小时搜索互联网之后,我仍然无法找到解决一个相当简单的问题的方法.至少,我想这很容易.
我有一个名为“ WorkspaceView”的UserControl,它的唯一目的是将其他视图显示为选项卡.将这些视图称为ViewA,ViewB等.应该在运行时确定要显示哪些视图,因此我认为我需要一个可以呈现…. stuff的控件.
使用ContentControl进行救援.除了…我无法使其工作.我正在尝试在后面的代码中更新ViewA类型的用户控件,并将其分配给MyContent,即ContentControl.我试过了:
public WorkspaceView()
{
InitializeComponent();
DataContext = new View(A); //Hoping that the DataContext will propagate down
}
第二次尝试是
public WorkspaceView()
{
InitializeComponent();
var binding = new Binding {Source = new ViewA()};
MyContent.SetBinding(ContentControl.ContentProperty, binding);
}
在这两种情况下,我都看到一个空框,但是由于我已经将TextBlock硬连接到ViewA中,所以我希望它能向我显示该文本.我究竟做错了什么?
尽管知道MVVM是开发WPF应用程序的首选方法,但我还是希望了解如何使用文件背后的代码来实现这一点.稍后,我将使用MVVM重做该应用程序,但是首先我需要对WPF有一些基本的了解.
为了回应到目前为止的建议,我尝试了
MyContent.Content = new ViewA();
但是我仍然没有出现在ViewA中的文本.我还在这篇文章的底部提供了该应用程序呈现的屏幕截图.
工作区视图
资源文件
呈现什么
解决方法:
您是否尝试过这样做?
MyContent.Content = new ViewA();
编辑
尝试稍微简化一下代码,然后从那里开始工作.例如:
public WorkspaceView()
{
InitializeComponent();
// Something better than UserControl should be used here
ObservableCollection<UserControl> views = new ObservableCollection<UserControl>();
views.Add(new ViewA());
views.Add(new ViewB());
DataContext = views;
}
<Border ..>
<TabControl x:Name="TabControl"
..
ItemsSource="{Binding}" />
</Border>
此代码将WorkspaceView.DataContext设置为UserControls的集合.当您在WorkspaceView的XAML中指定{Binding}时,您将引用整个DataContext对象(即您的集合).通过这种方式,您可以将TabControl.ItemsSource设置为视图集合.
现在,您可以针对每个视图的类型创建DataTemplates,以控制每个控件在TabControl的选项卡中的显示方式.
内容总结
以上是互联网集市为您收集整理的c#-以编程方式在WPF中设置ContentControl的内容全部内容,希望文章能够帮你解决c#-以编程方式在WPF中设置ContentControl的内容所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。