C# WPF:无法解析代码隐藏中的符号
嗨,我正在为一个项目学习一点WPF和C。在工作了一段时间后,我意识到我将使用两个相同的项目,我认为创建自己的类以使其更易于使用是合适的。但是现在我不能像在窗口中那样在代码隐藏中引用XAML中定义的元素。我得到的错误是ContactPanel.xaml.cs中的“无法解析符号'ThaButton”:C# WPF:无法解析代码隐藏中的符号,c#,wpf,xaml,C#,Wpf,Xaml,嗨,我正在为一个项目学习一点WPF和C。在工作了一段时间后,我意识到我将使用两个相同的项目,我认为创建自己的类以使其更易于使用是合适的。但是现在我不能像在窗口中那样在代码隐藏中引用XAML中定义的元素。我得到的错误是ContactPanel.xaml.cs中的“无法解析符号'ThaButton”: using System.Windows.Controls; namespace WPF_OOM { public partial class ContactPanel : Content
using System.Windows.Controls;
namespace WPF_OOM
{
public partial class ContactPanel : ContentControl
{
public Contact Person { get; set; }
public ContactPanel()
{
ThaButton.Content = "test";
}
}
}
我的ContactPanel.xaml
<UserControl x:Class="WPF_OOM.ContactPanel:UserControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<DockPanel x:Name="dp">
<TextBlock x:Name="NameTextBlock" Text="testtesttest" DockPanel.Dock="Left"></TextBlock>
<Button x:Name="ThaButton" Content="button" DockPanel.Dock="Right"></Button>
</DockPanel>
</UserControl>
希望我已经很好地解释了我的问题。我可能对这个问题采取了错误的方法,如果有更好的方法,请告诉我
干杯从x:Class=“WPF\u OOM.ContactPanel:UserControl”中删除:UserControl,使其看起来像x:Class=“WPF\u OOM.ContactPanel”
此外,在您的代码中,ContactPanel继承表单ContentControl,但在xaml中,它继承自UserControl。这些基类必须匹配。因此,将它们都更改为UserControl或ContentControl
看起来您创建了一个单独的.cs文件?我建议使用xaml文件生成的代码。一种方法是在xaml编辑器中右键单击并选择“查看代码”。如果导入了xaml和.cs文件,则在解决方案资源管理器中重新加载项目或重新启动visual studio时,如果它们尚未合并,则应再次将它们合并
我建议查看模型-视图-模型或MVVM模式。它与WPF配合使用相当好;)
希望这能帮助您入门。x:Class属性似乎有问题:
xaml中的类定义已关闭“WPF\u OOM.ContactPanel:UserControl”。也请考虑阅读MVVM模式。通常,你不会做这样的事情。我也有同样的问题。我通过重启VS解决了这个问题。