0
在下面的代碼中,我從列表框中獲取SelectedItem並在第二個數據網格中顯示其內容。爲什麼silverlight 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 **,我認爲它必須是空名稱 - 沒有任何選擇。 ;) – 2012-04-26 14:59:10
ListBox和註釋掉的DataGrid綁定到相同的東西。如果我按原樣運行代碼,細節顯示在Bottom Datagrid中。如果我將列表框註釋掉並取消註釋掉的數據網格,則底部數據網格中不會顯示任何數據。 – caa 2012-04-26 15:09:55
它適用於SL 4,因此我猜它是SL3中的一個錯誤。我使用SL3 – caa 2012-04-26 15:10:24