2013-08-07 5 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

Я не могу воспроизвести какую-либо ошибку 'Неоднозначное Reference'. Ошибка, которую я получаю с вашим XAML, заключается в следующем:

Прилагаемое свойство 'Resources' не было найдено в типе 'UserControl'.

Элемент с именем <Something.SomethingElse> может означать вложенное свойство имени SomethingElse, который принадлежит к классу Something (например, Grid.Row), или он может относиться к (присоединенные не) собственностям SomethingElse зависимости от этого Something класса, при условии, что этот элемент является прямым потомком<Something>элемент.

В этом случае, поскольку <UserControl.Resources> элемента не как прямой потомок в <UserControl> элемента (это прямой потомок в <Grid>), Silverlight ищет вложенное свойство имени Resources на UserControl типа, но без такого вложенного свойства существует.

Исправление к этому довольно простое: изменение UserControl.Resources к Grid.Resources:

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

Свойство Resources наследуется, по Grid, UserControl и многих других типов, от FrameworkElement.Resources, так что это не просто принадлежит UserControl s. Вы можете на самом деле поставить его под верхний уровень <controls:ViewBase>, если хотите. Если вы это сделаете, вы должны называть его <controls:ViewBase.Resources>, так как он является прямым потомком элемента <controls:ViewBase>.

+0

«Неоднозначная ссылка» показана IntelliSense в редакторе xaml в подсказке. – noaRAVE

+0

@noaRAVE: это может быть связано с библиотекой управления Telerik, в которой у меня нет копии. Я все еще не могу воспроизвести это сообщение, но спасибо, что потратил время, чтобы объяснить, как вы его видели. –

Смежные вопросы