子控件嵌套问题,请高手指教,谢谢!!
首先最外面控件用了一个子控件,xmal代码:
<ScrollViewer Grid.Row="1" HorizontalScrollBarVisibility="Disabled" Margin="0,0,0,10" VerticalScrollBarVisibility="Visible" Background="White">
<ItemsControl x:Name="ConfirmList" >
<ItemsControl.ItemTemplate>
<DataTemplate>
<local:ConfirmRowControl></local:ConfirmRowControl>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ScrollViewer>
.cs部分:ConfirmList.ItemsSource = list; 这样绑定了。
然后二级控件也就是local:ConfirmRowControl:
xaml部分:
<StackPanel>
<Border BorderBrush="Black" BorderThickness="0, 0, 0, 1" Padding="2">
<StackPanel Orientation="Horizontal">
<TextBlock>文件名:</TextBlock>
<TextBlock Foreground="Red" x:Name="FileNameTextBlock" Text="{Binding FileName}"/>
<TextBlock Width="100" TextAlignment="Right">日期:</TextBlock>
<TextBlock Foreground="Red" x:Name="DateTextBlock" Text="{Binding Date}"/>
</StackPanel>
</Border>
<Grid x:Name="LayoutRoot" Background="White">
<ItemsControl x:Name="ConfirmList2" >
<ItemsControl.ItemTemplate>
<DataTemplate>
<local:ConfirmRowControl2></local:ConfirmRowControl2>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
</StackPanel>
.cs部分:
ConfirmList2.ItemsSource = ?? 这里应该如何绑定呢?
最后是三级控件也就是local:ConfirmRowControl2:
xaml部分:
<Grid x:Name="LayoutRoot" Background="White">
<Border BorderBrush="Black" BorderThickness="0, 0, 0, 1" Padding="2">
<StackPanel Orientation="Horizontal">
<TextBox x:Name="No" Width="150" Text="{Binding No}"></TextBox>
<TextBlock x:Name="CargoCode" TextAlignment="Center" Text="{Binding CargoCode}" Width="190"/>
<TextBlock x:Name="ProductCode" TextAlignment="Center" Text="{Binding ProductCode}" Width="190"/>
<TextBlock x:Name="ProductCount" TextAlignment="Center" Text="{Binding Count}" Width="190"/>
</StackPanel>
</Border>
</Grid>
其实我要实现的效果很简单,就是一个集合里又包含另一个集合,我只是想把这些内容都显示出来。在asp.net mvc里只需要两个for循环就可以了。但是在sliverlight里用子控件不知道要怎么绑定啊?请高手教我,谢谢!!!
[解决办法]
你这个用TreeView不就可以实现么?何必这么麻烦。
修改Tree相应层的模板就行了。