在Silverlight 3開始的幾個小時裏,作爲一個狂熱的WPF用戶,我對它不支持的許多事情感到非常失望。這對我來說似乎是一個奇怪的問題,而且它非常通用,我無法在網上找到任何關於它的信息。在代碼中看不到命名的Silverlight控件
我有以下XAML:
<controls:TabControl x:Name="workspacesTabControl" Grid.Row="1"
Background="AntiqueWhite" ItemsSource="{Binding Workspaces, ElementName=_root}"/>
不過,我看不到代碼隱藏workspacesTabControl
。我想,也許智能感知只是小氣,想繼續前進,反正編譯它,但得到了一個錯誤:
Error 1 The name 'workspacesTabControl' does not exist in the current context
如何訪問代碼隱藏控件?
編輯:我意識到我粘貼了錯誤的錯誤 - 我有UserControl中稱爲workspacesTabControl和menuStrip的兩個控件。在代碼隱藏方面,我無法通過他們的名字找到他們中的任何一個。
以防萬一,這裏是爲menuStrip
的XAML:
<controls:TreeView Grid.ColumnSpan="2" Height="100" x:Name="menuStrip"
ItemContainerStyle="{StaticResource MenuStripStyle}"
ItemsSource="{Binding Menu, ElementName=_root}"/>
再次編輯:
我不知道這是有益的,但我已經看到了在InitializeComponent()
代碼和這裏就是我看到:
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
public void InitializeComponent() {
if (_contentLoaded) {
return;
}
_contentLoaded = true;
System.Windows.Application.LoadComponent(this, new System.Uri("/SapphireApplication;component/SapphireMain.xaml", System.UriKind.Relative));
}
看來,它只是加載XAML當它運行(不前或編譯期間),因此menuStrip
和workspacesTabControl
名稱實際上並未在任何地方註冊(因爲它們通常在WPF/win表單中)。這個屬性可能是一個問題嗎?我在哪裏擺脫了我所做的所有未來UserControls的這一要求?
無法重現您的問題。 – AnthonyWJones 2009-12-03 23:07:46
出於好奇,您的UserControl上設置的x:Class是什麼? – JerKimball 2010-03-18 21:12:18