0

在下面的代码中,我从列表框中获取 SelectedItem 并在第二个数据网格中显示其内容。

但是,如果我用注释掉的数据网格替换列表框,则数据不再显示在第二个数据网格中。当我使用列表框时,为什么数据只显示在第二个数据网格中的任何原因?

  <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>
4

1 回答 1

1

我将其发布为答案,以防其他人偶然发现此问题。我花了大约 4 个小时试图找出我做错了什么。我的情况与caa非常相似。

在 SilverLight 3 中,来自一个 DataGrid 的绑定 SelectedItem 作为另一个 DataGrid 的 ItemsSource 使得它不会显示在将它作为 ItemsSource 的那个中。当我将第二个切换到列表框时,我的项目会显示。我不知道我做错了什么,直到我偶然发现这篇文章并看到它在 SilverLight 4 但不是 3 中工作的 caa 评论。我发现我的旧项目是 SilverLight 3 项目并将其更改为 4 修复它。

于 2014-08-26T01:49:46.180 回答