2013-08-07 95 views
0

我對Silverlight/Telerik相對來說比較新,如何將它正在尋找的資源從新添加的「LayoutRoot」網格傳遞到最初爲頂級的「UserControl.Resources」。Silverlight UserControl資源不明確?

謝謝你,我 感謝所有幫助提前:)

<controls:ViewBase x:Class="CS.MyProgram.Silverlight.Module.Viewer.LoanTradingPnLDashboard.LoanTradingPnLViewer" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:data="clr-namespace:CS.MyProgram.Library.Controls.Data;assembly=Library.Controls" 
xmlns:controls="clr-namespace:CS.MyProgram.Silverlight.Library.Controls;assembly=Library" 
xmlns:libraryData="clr-namespace:CS.MyProgram.Library.Controls.Data;assembly=Library.Controls" 
xmlns:telerik="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.GridView" 
xmlns:telerikControl="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls" 
xmlns:cal="clr-namespace:Microsoft.Practices.Composite.Presentation.Commands;assembly=Microsoft.Practices.Composite.Presentation" 
xmlns:navigate="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.Navigation" 
xmlns:Controls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls" 
xmlns:Controls1="clr-namespace:CS.MyProgram.Library.Controls;assembly=Library.Controls" 
xmlns:Controls2="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.Input" 
xmlns:asp="clr-namespace:System.Reflection.Emit;assembly=mscorlib" 
xmlns:Converters="clr-namespace:CS.MyProgram.Silverlight.Module.Viewer.LoanTradingDashboard.Converters;assembly=Viewer" 
xmlns:GenericComponents="clr-namespace:CS.MyProgram.Silverlight.ComponentLibraries.GenericComponents;assembly=GenericComponents" 
xmlns:Command="clr-namespace:CS.MyProgram.Silverlight.ComponentLibraries.GenericComponents.Command;assembly=GenericComponents" 
xmlns:vcharting="clr-namespace:Visifire.Charts;assembly=SLVisifire.Charts" 
xmlns:telerikGridView="clr-namespace:Telerik.Windows.Controls.GridView;assembly=Telerik.Windows.Controls.GridView"> 

<Grid x:Name="LayoutRoot" > 

    <Grid.RowDefinitions> 
     <RowDefinition Height="*"></RowDefinition> 
    </Grid.RowDefinitions> 

    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="*" /> 
    </Grid.ColumnDefinitions> 

    <UserControl.Resources> <!-- !!!!!! This Line Has The Ambiguous Reference --> 
     <!--STUFF LIKE THIS--> 
     <telerikControl:Office_BlackTheme x:Key="Theme"/> 
     <telerikControl:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/> 
     <!--STUFF LIKE THIS--> 
    </UserControl.Resources> 

    <Grid x:Name="AnotherGrid" > 
     <!--STUFF LIKE THIS--> 
     <telerik:CustomDataGrid /> 
     <!--STUFF LIKE THIS--> 
    </Grid> 

</Grid> 

回答

0

我不能複製任何「不明確的引用」錯誤。我用你的XAML獲得的錯誤如下:

在'UserControl'類型中找不到可附加屬性'Resources'。

與名稱<Something.SomethingElse>一個元素可以表示屬於類SomethingSomethingElse的附加屬性(例如,Grid.Row),或者它可以指Something類的(非連接的)SomethingElse依賴屬性, 提供這個元素是一個直接的孩子<Something>元素

在這種情況下,因爲<UserControl.Resources>元素不是作爲<UserControl>元素(這是一個<Grid>的直接孩子),Silverlight中查找該UserControl類型命名Resources附加屬性,但沒有這樣的附加屬性的直接子存在。

的修復程序,這是相當簡單:改變UserControl.ResourcesGrid.Resources

<Grid.Resources> 
     <!--STUFF LIKE THIS--> 
     <telerikControl:Office_BlackTheme x:Key="Theme"/> 
     <telerikControl:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/> 
     <!--STUFF LIKE THIS--> 
    </Grid.Resources> 

Resources屬性是繼承的,由GridUserControl和許多其他類型,從FrameworkElement.Resources,所以它不只是屬於UserControl s。如果您願意,您實際上可以將其置於頂層<controls:ViewBase>元素之下。如果你這樣做,你必須將它命名爲<controls:ViewBase.Resources>,因爲它是<controls:ViewBase>元素的直接子元素。

+0

工具提示中的xaml編輯器中的智能感知顯示「不明確的參考」。 – noaRAVE

+0

@noaRAVE:這可能與Telerik控制庫有關,我沒有它的副本。我仍然無法複製該信息,但感謝您花時間解釋您如何看到它。 –