嗨我已經創建了一些基於在這裏找到的信息的子類別usercontrols; http://csharpsimplified.wordpress.com/2011/09/21/subclassing-wpf-user-control/但我遇到問題。子類化WPF UserControl不適用於所有項目
這是我的基類保存在TestUserControl項目中。
namespace TestUserControl
{
public class BaseDataGridControl : UserControl
{
protected BaseDataGridControl()
{
}
}
}
這是我的具體類;
<view:BaseDataGridControl x:Class="TestUserControl.Concrete"
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:view="clr-namespace:TestUserControl"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<Grid>
<Button Height="20" Width="60" Margin="12,12,228,268" />
</Grid>
</view:BaseDataGridControl>
並且這個控制後面的代碼看起來像這樣;
public partial class Concrete : BaseDataGridControl
{
public Concrete()
{
InitializeComponent();
}
}
我可以在同一個TestUserControl項目的窗口中放下我的具體類沒有任何問題;
<Window x:Class="TestUserControl.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525" xmlns:my="clr-namespace:TestUserControl">
<Grid>
<my:Concrete HorizontalAlignment="Left" Margin="88,39,0,0" x:Name="concrete1" VerticalAlignment="Top" />
</Grid>
</Window>
這一切工作正常。
問題是當我嘗試在另一個項目中使用具體類。
如果我創建另一個項目(WPFApplication1)並根據具體的類創建一個類,例如
namespace WpfApplication1
{
public class SubClass : Concrete
{
}
}
當我試圖把它放到WPFApplication1項目中的一個窗口上我得到一個;
「枚舉是無效的,因爲集合改變」
如果我嘗試通過XAML添加它,我得到一個
「組件‘WpfApplication1.SubClass’沒有被識別的資源URI'/TestUserControl;component/concrete.xaml'。
錯誤消息。
WPFApplication1項目引用了TestUserControl項目。
有沒有人有任何線索爲什麼這可以在usercontrol定義的項目中工作,但只要你試圖在一個單獨的項目中繼承它就會失敗?
我已經在VS2010和VS11測試版中試過這個,結果相同。
我沒有使用反射或訪問類的構造函數中的任何集合,代碼就是你在這裏看到的。
我有測試項目,證明這個問題,如果它會幫助?
謝謝....
示例項目可以從https://skydrive.live.com/redir.aspx?cid=150630a5c1433bff&resid=150630A5C1433BFF下載!120&parid = root –
你試過了嗎.. public _partial_ class SubClass:Concrete? – Rusty
我做了,但沒有任何區別。 –