cos*_*ost 3 c# wpf inheritance xaml
我看到其他一些人在其他问题中询问此错误消息,但我似乎并不了解为自己解决这个问题的原因.我通过WPF UserControl创建了这个错误
public partial class EnterNewRequest : UserControl
Run Code Online (Sandbox Code Playgroud)
但后来我想为UserControl添加一个方法,所以我使用继承将其粘贴在那里(不能使用扩展,因为我需要覆盖此方法).但是现在我的usercontrol很难过,我不确定xaml中我需要改变什么.UserControl更改块位于命名空间RCO_Manager中.这是我的xaml:
<UserControl x:Class="RCO_Manager.EnterNewRequest"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
Run Code Online (Sandbox Code Playgroud)
我在使用Windows Phone时遇到了同样的问题.我不记得确切的例外,但你可以看到这里GitHub上的XAML,这里的页面代码,并在此基础页面代码(我的是一个基本页面,而不是基本控制).我需要添加一个新的XAML命名空间并更改<UserControl/>声明:
代码假设
namespace RCO_Manager
{
// Inherits **Base**UserControl, not UserControl
public partial class EnterNewRequest : BaseUserControl
{
// Magic goes here
...
}
}
Run Code Online (Sandbox Code Playgroud)
XAML
<local:BaseUserControl
xmlns:local="clr-namespace:RCO_Manager"
x:Class="RCO_Manager.EnterNewRequest"
Run Code Online (Sandbox Code Playgroud)
边注
根据Baboon的说法,一旦指定了基类,就不需要在代码隐藏中指定它XAML,因此您可以更改代码隐藏以显示以下内容.我现在无法验证它,但你可以在它运行后尝试一下.
public partial class EnterNewRequest // Don't specify BaseUserControl here
{
...
Run Code Online (Sandbox Code Playgroud)