我对Silverlight / Telerik比较陌生,我如何将新添加的“LayoutRoot”网格中寻找的资源传递给最初的“UserControl.Resources”。
谢谢你, 我提前感谢任何帮助:)
<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 :(得分:0)
我无法重现任何“模糊参考”错误。我用你的XAML得到的错误如下:
在'UserControl'类型中找不到可附加属性'Resources'。
名称为<Something.SomethingElse>
的元素可以表示属于类SomethingElse
的名称Something
的附加属性(例如,Grid.Row
),或者它可以指代({1}}类的非附加的SomethingElse
依赖项属性,如果此元素是 Something
元素的直接子元素
在这种情况下,因为<Something>
元素不是<UserControl.Resources>
元素的直接子元素(它是<UserControl>
的直接子元素),所以Silverlight会查找名为的附加属性<Grid>
类型上的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
以及来自FrameworkElement.Resources
的众多其他类型继承,因此它不仅属于UserControl
秒。实际上,如果您愿意,可以将其置于顶级UserControl
元素下。如果您这样做,则必须将其命名为<controls:ViewBase>
,因为它是<controls:ViewBase.Resources>
元素的直接子项。