C# 将ResourceDictionary控件绑定到多个对象

C# 将ResourceDictionary控件绑定到多个对象,c#,wpf,C#,Wpf,目前在我的资源字典中,我有一个telerik Tile控件。当第二次实例化时,我收到以下错误指定的Visual已经是另一个Visual的子级或CompositionTarget的根 public void ListIcon() { var tile = Application.Current.Resources["ListTile"] as Tile; Tiles.Add(tile); } app.xaml <telerik:Tile x:Key="Cal

目前在我的资源字典中,我有一个telerik Tile控件。当第二次实例化时,我收到以下错误
指定的Visual已经是另一个Visual的子级或CompositionTarget的根

public void ListIcon()
{
    var tile = Application.Current.Resources["ListTile"] as Tile;        
    Tiles.Add(tile);
}
app.xaml

<telerik:Tile x:Key="Calendar" TileType="Double" Background="#FF79256B" Group="Other">
    <telerik:RadCalendar x:Name="calendar" 
                         FontFamily="Segoe UI"
                         FontSize="10"
                         controls:StyleManager.Theme="Windows8"
                         VerticalAlignment="Top" HorizontalAlignment="Center"
                         SelectionMode="Extended" 
                         IsTodayHighlighted="True" ViewsHeaderVisibility="Collapsed"                                     
                         SelectedDate="{Binding SelectedDate, Mode=TwoWay}"
                         Culture="en-US"
                         DayTemplateSelector="{StaticResource EventDayTemplateSelector}"/>
</controls:Tile>


每次新用户登录时,都会调用ListIcon()。如果我注销并登录到另一个用户,则会发生错误。请问如何解决这个问题

简单地设置控件的
x:Shared=“false”
就成功了

<telerik:Tile x:Shared="False" x:Key="Calendar" TileType="Double" Background="#FF79256B" Group="Other">
    <telerik:RadCalendar x:Name="calendar" 
                         FontFamily="Segoe UI"
                         FontSize="10"
                         controls:StyleManager.Theme="Windows8"
                         VerticalAlignment="Top" HorizontalAlignment="Center"
                         SelectionMode="Extended" 
                         IsTodayHighlighted="True" ViewsHeaderVisibility="Collapsed"                                     
                         SelectedDate="{Binding SelectedDate, Mode=TwoWay}"
                         Culture="en-US"
                         DayTemplateSelector="{StaticResource EventDayTemplateSelector}"/>
</controls:Tile>


您可以通过不尝试同时将
telerik:Tile
的一个实例作为多个父母的孩子来解决此问题。请在其上尝试IsShared=“False”。如果不起作用,请将其放入数据模板中。@EdPlunkett Hi-Ed,我尝试设置IsShared,但该属性对于平铺不可见。我还尝试在DataTemplate中包装互动程序,然后将
tile.Content=Application.Current.Resources[“ListTile”]设置为DataTemplate但这不起作用。任何其他提示都将不胜感激。是的,请尝试将
DataTemplate
用作
DataTemplate
<代码>
Hi@Ed,我之前错了。我原以为shared是Tile控件的一个可见属性,但我只需设置
x:shared=false
,它就成功了!因为我记得那是一个非常可怕的错误,以至于你不得不自己去解决它,所以你应该把它作为一个答案添加进来,这样我就可以投票了!