꽤 안절부절 못했지만, 내 Page
에 두 개의 UserControl
을 추가하려고 시도했는데 동일한 컨트롤 이름이 시각적 트리에 두 번 사용되었다는 예외가 있음을 알게되었습니다. 따라서 내 UserControl
안에있는 컨트롤의 이름이 지정되어 있으므로 한 번에 Page
에이 UserControl
중 하나만 포함 할 수 있습니다. 이게 사실인가요, 아니면 뭔가를 깨닫지 못합니까? Microsoft는 코드 재사용을 포기 했습니까? 이것은 매우 절름발이입니다.페이지 당 Silverlight UserControl 인스턴스를 하나만 가질 수 있습니까?
편집 여기 온 사람, 나는 이것을 System.Resources.MissingManifestResourceException 예외를 얻고 있었다 들어
. 문제가 시각적 트리의 모호한 이름이라는 것을 알아내는 데 시간이 걸렸습니다. 바라기를 이것은 당신을 돕는다. 다음은 전체 예외 텍스트입니다.
또한 편집 여기
내 XAML입니다 :
<Grid x:Name="LayoutRoot">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<TextBlock x:Name="HeaderText"
res:Strings.Assignment="Text=MachiningView_Name"/>
<sdk:TabControl Grid.Row="2">
<sdk:TabItem Header="Projects">
<ScrollViewer>
<Grid>
<controls:Organizer Margin="4" ItemsSource="{Binding ProjectSummaries}" Height="24" VerticalAlignment="Top">
<controls:Organizer.GroupDescriptions>
<controls:OrganizerGroupDescription res:Strings.Assignment="Text=NoGroupingText" IsDefault="True" />
<controls:OrganizerGroupDescription res:Strings.Assignment="Text=GroupOwnerEmailText">
<controls:OrganizerGroupDescription.GroupDescription>
<helpers:OwnerEmailGroupDescription />
</controls:OrganizerGroupDescription.GroupDescription>
</controls:OrganizerGroupDescription>
<controls:OrganizerGroupDescription res:Strings.Assignment="Text=GroupStoreNumberText">
<controls:OrganizerGroupDescription.GroupDescription>
<helpers:StoreNumberGroupDescription />
</controls:OrganizerGroupDescription.GroupDescription>
</controls:OrganizerGroupDescription>
</controls:Organizer.GroupDescriptions>
</controls:Organizer>
</Grid>
</ScrollViewer>
</sdk:TabItem>
<sdk:TabItem Header="Machine Queues">
<ScrollViewer>
<Grid>
<controls:Organizer Margin="4" ItemsSource="{Binding ProjectSummaries}" Height="24" VerticalAlignment="Top">
<controls:Organizer.GroupDescriptions>
<controls:OrganizerGroupDescription res:Strings.Assignment="Text=NoGroupingText" IsDefault="True" />
<controls:OrganizerGroupDescription res:Strings.Assignment="Text=GroupOwnerEmailText">
<controls:OrganizerGroupDescription.GroupDescription>
<helpers:OwnerEmailGroupDescription />
</controls:OrganizerGroupDescription.GroupDescription>
</controls:OrganizerGroupDescription>
<controls:OrganizerGroupDescription res:Strings.Assignment="Text=GroupStoreNumberText">
<controls:OrganizerGroupDescription.GroupDescription>
<helpers:StoreNumberGroupDescription />
</controls:OrganizerGroupDescription.GroupDescription>
</controls:OrganizerGroupDescription>
</controls:Organizer.GroupDescriptions>
</controls:Organizer>
</Grid>
</ScrollViewer>
</sdk:TabItem>
</sdk:TabControl>
</Grid>
그리고 여기 내 사용자 컨트롤의 XAML입니다 : 당신은 UserControl을 추가 할 때
<StackPanel Orientation="Horizontal" DataContext="{Binding ElementName=UserControl}">
<sdk:Label Content="Page:" VerticalAlignment="Center" Margin="0,0,5,0"/>
<sdk:DataPager Name="_projectSummariesPager"
Margin="0,0,5,0"
DisplayMode="FirstLastPreviousNextNumeric"
Source="{Binding Path=ItemsSource}"
PageSize="10"/>
<ComboBox Name="_itemPerPageCombo"
Margin="0,0,5,0"
SelectionChanged="_itemPerPageCombo_SelectionChanged"
SelectedItem="{Binding Path=SelectedPageSize, Mode=TwoWay}"
SelectedValuePath="Value"
ItemsSource="{Binding Path=PageSizes}"/>
<ComboBox Name="_groupDescription"
Margin="0,0,5,0"
SelectionChanged="_groupDescription_SelectionChanged"
SelectedItem="{Binding Path=SelectedGroupDescription, Mode=TwoWay}"
ItemsSource="{Binding Path=GroupDescriptions}"/>
</StackPanel>
@MichaelS, 나는 바보가 아닙니다. 그것은 컴파일조차되지 않을 것입니다. Reed가 아래에 저에게 가르쳐 주었던 것처럼 제 문제는 제가 전혀 이름을 지어주지 않았다는 것입니다. – Jordan
@Jordan : 컨트롤의 이름을 지정하지 않아도 정상적으로이 문제가 발생하지 않습니다. SL 버전? Xaml? 좌절감을 제한하십시오. – AnthonyWJones
@ 요르단, 그냥 도우려고 .. – MichaelS