아래의 코드에서는 목록 상자에서 SelectedItem을 가져 와서 그 내용을 두 번째 DataGrid에 표시합니다.Silverlight Datagrid에서 왜 데이터를 표시하지 않습니까?
그러나 목록 상자를 주석으로 처리 된 DataGrid로 바꾸면 데이터가 두 번째 DataGrid에 더 이상 표시되지 않습니다. 왜 내가 목록 상자를 사용할 때 데이터가 두 번째 DataGrid에 표시되는지에 대한 이유는 무엇입니까 ??
<ListBox Margin="5" Grid.Row="2" Grid.ColumnSpan="2" ItemsSource="{Binding NonNavBarPricerLayouts}" SelectedItem="{Binding SelectedNonNavBarItem, Mode=TwoWay}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<!--<data:DataGrid Margin="5" Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" ItemsSource="{Binding NonNavBarPricerLayouts}" SelectedItem="{Binding SelectedNonNavBarItem, Mode=TwoWay}"
AutoGenerateColumns="False" CanUserResizeColumns="True" CanUserSortColumns="True"
SelectedIndex="-1"
GridLinesVisibility="None">
<data:DataGrid.Columns>
<data:DataGridTemplateColumn Header="Pricer Layout" Width="150">
<data:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}"/>
</DataTemplate>
</data:DataGridTemplateColumn.CellTemplate>
</data:DataGridTemplateColumn>
</data:DataGrid.Columns>
</data:DataGrid>-->
<TextBlock Grid.Row="3" Grid.ColumnSpan="2" Margin="5,5,5,0" Text="Selected pricer layout contents:"/>
<data:DataGrid Name="dgPricerLayoutDetail" Grid.ColumnSpan="2" Grid.Row="4" Margin="5" ItemsSource="{Binding SelectedNonNavBarItem.PricerDetails}"
AutoGenerateColumns="True" CanUserResizeColumns="False"
SelectedIndex="-1"
IsReadOnly="True" GridLinesVisibility="None">
</data:DataGrid>
게시 한 항목의 모습에서 다른 요소에 바인딩하는 것처럼 보입니다. 목록 상자에서 ItemsSource는 ** NonNavBarPricerLayouts ** 바인딩입니다. 반면 DataGrid에서는 ItemsSource를 ** SelectedNonNavBarItem.PricerDetails **로 변경했습니다. 이름으로 비어 있어야하며 아무것도 선택되어 있지 않아야합니다. ;) –
ListBox와 주석 처리 된 DataGrid가 동일한 항목에 바인딩됩니다. 있는 그대로 코드를 실행하면 세부 정보가 Bottom Datagrid에 표시됩니다. ListBox를 주석으로 처리하고 주석 처리 된 DataGrid의 주석 처리를 제거한 경우 하단 데이터 격자에 데이터가 표시되지 않습니다. – caa
SL4에서 작동하므로 SL4에서 버그가 발생합니다. SL3을 사용하는 임 – caa