質問

その中のいくつかの項目を持つリストボックスがあります。また、3×3マトリックスとグリッドがあります。ユーザが項目をドラッグし、グリッドの一方のセルにドロップされます。

私が見つけたサンプルのほとんどは、別のリストボックスに1つのリストボックスからドラッグ・ドロップについてです。しかし、私は、グリッドの一つのセルにドロップします。どのように私はこれを達成することができますか?

お知らせください。感謝 PJ

正しい解決策はありません

他のヒント

plsは、チェックは以下の例では、あなたのために働くかどうます:

XAMLます:

<Grid>
    <ListBox Height="100" HorizontalAlignment="Left" Margin="56,65,0,0" 
             Name="listBox1" VerticalAlignment="Top" Width="120" 
             PreviewMouseLeftButtonDown="listBox1_PreviewMouseLeftButtonDown">
        <ListBoxItem Content="one" />
        <ListBoxItem Content="two" />
        <ListBoxItem Content="three" />
    </ListBox>
    <Grid Height="100" HorizontalAlignment="Left" Margin="238,65,0,0" Name="grid1" 
          VerticalAlignment="Top" Width="200" ShowGridLines="True" TextBlock.Drop="grid1_Drop">
        <Grid.RowDefinitions>
            <RowDefinition  />
            <RowDefinition  />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition />
            <ColumnDefinition />
        </Grid.ColumnDefinitions>

        <TextBlock Grid.Row="0" Grid.Column="0" AllowDrop="True"></TextBlock>
        <TextBlock Grid.Row="0" Grid.Column="1" AllowDrop="True"></TextBlock>
        <TextBlock Grid.Row="1" Grid.Column="0" AllowDrop="True"></TextBlock>
        <TextBlock Grid.Row="1" Grid.Column="1" AllowDrop="True"></TextBlock>

    </Grid>
</Grid>

コード:

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }

    private void listBox1_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    {
        object item = listBox1.SelectedItem;
        if (item != null)
            DragDrop.DoDragDrop(listBox1, item, DragDropEffects.Move);
    }

    private void grid1_Drop(object sender, RoutedEventArgs e)
    {
        TextBlock textBlock = e.Source as TextBlock;
        Console.WriteLine("drop item into grid column:{0} row:{1}", 
            Grid.GetColumn(textBlock), Grid.GetRow(textBlock));

        DataObject item = (((DragEventArgs)e).Data) as DataObject;
        ListBoxItem listItem = item.GetData(typeof(ListBoxItem)) as ListBoxItem;
        textBlock.Text = listItem.Content.ToString();
    }
}

これが役に立てば幸い、よろしく

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top