【问题标题】:Silverlight UserControl Resources are ambiguous?Silverlight UserControl 资源不明确?
【发布时间】:2013-08-07 17:05:34
【问题描述】:

我对 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>

【问题讨论】:

    标签: silverlight xaml telerik radgrid


    【解决方案1】:

    我无法重现任何“不明确的引用”错误。我收到的 XAML 错误如下:

    在“UserControl”类型中找不到可附加属性“Resources”。

    名称为&lt;Something.SomethingElse&gt; 的元素可以表示属于Something 类的名称为SomethingElse 的附加属性(例如Grid.Row),或者它可以引用(非附加)SomethingElse Something 类的依赖属性,如果此元素是&lt;Something&gt; 的直接子元素 元素。

    在这种情况下,因为 &lt;UserControl.Resources&gt; 元素不是 &lt;UserControl&gt; 元素的直接子元素(它是 &lt;Grid&gt; 的直接子元素),Silverlight 会在 @ 上查找名为 Resources 的附加属性987654333@类型,但不存在这样的附加属性。

    解决方法很简单:将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 继承,因此它不仅仅属于UserControls。如果您愿意,您实际上可以将它放在顶级 &lt;controls:ViewBase&gt; 元素下。如果这样做,则必须将其命名为 &lt;controls:ViewBase.Resources&gt;,因为它是 &lt;controls:ViewBase&gt; 元素的直接子元素。

    【讨论】:

    • 'Ambiguous Reference' 由 IntelliSense 在 xaml 编辑器的工具提示中显示。
    • @noaRAVE:这可能与 Telerik 控件库有关,我没有它的副本。我仍然无法重现该消息,但感谢您花时间解释您是如何看到它的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多