以下のコードでは、リストボックスからSelectedItemを取得し、その内容を2番目のDataGridに表示します。Silverlight Datagridにデータが表示されないのはなぜですか?
ただし、リストボックスをコメントアウトされたデータグリッドに置き換えると、データはもう2番目のデータグリッドに表示されなくなります。なぜ私はリストボックスを使用すると、2番目のデータグリッドにデータが表示されるかについての理由は何ですか?
<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が同じものにバインドされます。コードをそのまま実行すると、詳細が下部データグリッドに表示されます。私がListBoxをコメントアウトし、コメントアウトされたdataGridのコメントを外すと、データはボトムデータグリッドに表示されません – caa
それはSL4で動作しますので、私の推測はSL3のバグです。 SL3を使用しているIm – caa