web-dev-qa-db-ja.com

編集可能なリストビュー

ユーザーがセルをダブルクリックしてその内容を変更できるC#winformsアプリケーションで編集可能なリストビューを作成しようとしています。誰かが私にいくつかのガイダンスおよび/または例を提供できればそれは素晴らしいでしょう。市販品を使うつもりはありません。

21
THE DOCTOR

あなたは間違った質問をしている:)

ListViewは正しいコントロールではありません。 DataGridView コントロールを使用します。 ListViewのように見えるように構成できますが、セルのインプレース編集をサポートしています。

18
Simon Gillbee

ObjectListView は、まさにそれ以上のことを行います。これは、通常の.NET ListViewのラッパーです。オープンソースです。

そのウェブサイトには Getting Started があり、ページ全体が セルの編集 に特化しています。

6
Grammarian

リストビューのDoubleClickイベントを使用することができ、それが呼び出されると、ユーザーが選択したアイテムに新しい値を入力する新しいフォームを開きます。次に、ユーザーが[OK]を押したら、特定のアイテムの値をユーザーが入力した値に編集します。

1
A. Abiri

DataGridViewは友だちですSourceGridは代わりです

0
Pavels

DataTemplateを使用して、列にテキストボックス(編集可能の場合)またはテキストブロック(編集不可の場合)が含まれていることを指定し、テキストボックスを、リストビューのitemsourceにバインドされているSource Object Collectionのクラスプロパティにバインドできます。

<Window.Resources>
    <ResourceDictionary>
        <DataTemplate x:Key="NameHeader">
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="Name" VerticalAlignment="Center" Margin="10,0,0,0" />
            </StackPanel>
        </DataTemplate>
        <DataTemplate x:Key="NameCell">
            <StackPanel Orientation="Horizontal">
                <TextBox Text="{Binding Path=Name}" VerticalAlignment="Center" Margin="10,0,0,0" />
            </StackPanel>
        </DataTemplate>
    </ResourceDictionary>
</Window.Resources>

<Grid>
    <ListView x:Name="lvwList" Height="200" VerticalAlignment="Top" ItemsSource="{Binding Path=SourceObjectCollection}">
        <ListView.View>
            <GridView>
                <GridViewColumn Header="Name" HeaderTemplate="{StaticResource NameHeader}" CellTemplate="{StaticResource NameCell}" Width="140" />
            </GridView>
        </ListView.View>
    </ListView>
</Grid>

ニック・ハンショー

0
Nick Hanshaw

はい、DataGridViewを使用します。

セルを編集できるだけでなく、Tをグリッドに表示するクラスである汎用リストを宣言する場合、DataSource =そのリストを設定できます。グリッドビューを編集すると、実際にリストを自動的に編集できます。

0
dcarl661

そのサウンドから、代わりにDataGridViewの使用を検討してください。

DataGridView(MSDN)

0
jblaske