![](/img/trans.png)
[英]Modify textblock of a UserControl from another UserControl WPF
[英]WPF UserControl inheriting another UserControl
我試圖以WPF用戶控件如何繼承WPF用戶控件中提到的方式繼承WPF中的用戶控件。
namespace DMS.Presentation
{
/// <summary>
/// Interaction logic for WorkSpaceViewControl
/// </summary>
public abstract class WorkSpaceViewControl : UserControl
{
public WorkSpaceViewControl()
{
InitializeComponent();
}
private void InitializeComponent()
{
}
}
}
到目前為止,代碼沒有給出任何錯誤。 但是當我在新的usercontrol中繼承它時:
namespace DMS.Presentation
{
/// <summary>
/// Interaction logic for AnimalWorkSpaceView.xaml
/// </summary>
public partial class AnimalWorkSpaceView : WorkSpaceViewControl
{
public AnimalWorkSpaceView()
{
InitializeComponent();
}
}
}
它的XAML文件是:
//I have tried both WorkSpaceViewControl:UserControl and UserControl:WorkSpaceViewControl here
<UserControl:WorkSpaceViewControl x:Class="DMS.Presentation.WorkSpaceViewControl"
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"
xmlns:local="clr-namespace:DMS.Presentation"
xmlns:WorkSpaceViewControl="clr-namespace:DMS.Presentation"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
</UserControl:WorkSpaceViewControl>
我收到一條消息,指出不存在部分修飾符。 存在另一個WorkSpaceViewControl的部分聲明。 那么我應該如何實施它,哪里出了問題呢? 自一月份以來,由於繼承瓶頸,我的整個項目陷入了困境。 幫助將不勝感激。
根據您引用的答案,派生的UserControl
XAML應該看起來像這樣:
<local:WorkSpaceViewControl x:Class="DMS.Presentation.AnimalWorkSpaceView"
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"
xmlns:local="clr-namespace:DMS.Presentation"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
</local:WorkSpaceViewControl>
您已經聲明了兩個不同的XML名稱空間,分別是local
和WorkSpaceViewControl
,它們都引用了"clr-namespace:DMS.Presentation"
。 您只需要其中之一(因此我保留在local
,這更加慣用了),並且您需要使用名稱空間來限定類型名稱WorkSpaceViewControl
。
因此,XAML聲明開始於<local:WorkSpaceViewControl ...
另外,派生類的x:Class
值必須是派生類,而不是基類。 因此,而不是"DMS.Presentation.WorkSpaceViewControl"
,應被設置為"DMS.Presentation.AnimalWorkSpaceView"
,如上圖所示。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.