1

リストボックス、データグリッド、ボタンがあります。データ グリッドには、MS SQL からのデータが取り込まれます。ボタンを使用して、選択した項目をデータグリッドからリストボックスにコピーできるようにしたいと考えています。ボタンの背後にあるコードは

 private void btnAdd_click(object sender, RoutedEventArgs e)
    {

        lstSelected.Items.Add(iFacilitiesDataGrid.SelectedItem.ToString());

    }  
  //List Box in xaml
 <ListBox Grid.Column="2" Grid.Row="1" Grid.RowSpan="7" Height="258" HorizontalAlignment="Left" Margin="0,4,0,0" Name="lstSelected" VerticalAlignment="Top" Width="236" />    

データグリッドの場合

<DataGrid AutoGenerateColumns="False" EnableRowVirtualization="True" Grid.Column="2" Grid.Row="1" Grid.RowSpan="7" Height="244" HorizontalAlignment="Left" ItemsSource="{Binding Source={StaticResource iLocationICategoriesIFacilitiesViewSource}}" Margin="291,5,0,0" Name="iFacilitiesDataGrid" RowDetailsVisibilityMode="VisibleWhenSelected" VerticalAlignment="Top" Width="247">
        <DataGrid.Columns>                
            <DataGridTemplateColumn x:Name="facilityNameColumn" Header="Facility Name" Width="150">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding Path=FacilityName}" />
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
            <DataGridTextColumn x:Name="priceColumn" Binding="{Binding Path=Price}" Header="Price" Width="100" />

        </DataGrid.Columns>
    </DataGrid>       

リストボックスにアイテムを追加しようとするたびに、リストボックスに渡されるアイテムは "HM.IFacility" です。HM はプロジェクト名、IFacility はテーブル名です。

4

2 に答える 2

0

リストボックス用のデータテンプレートも作成する必要があります。DataGrid 用に作成したとおりです。リストボックスを以下のものに置き換えて、もう一度やり直してください。

<ListBox Grid.Column="2" Grid.Row="1" Grid.RowSpan="7" Height="258" HorizontalAlignment="Left" Margin="0,4,0,0" Name="lstSelected" VerticalAlignment="Top" Width="236" >
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding Path=FacilityName}" />
                </DataTemplate>
            </ListBox.ItemTemplate>            
        </ListBox>

条件: DataGrid と ListBox のデータは同じ Type である必要があります。

于 2013-06-14T11:38:58.717 に答える