2017-10-13 18 views
0

私のアプリケーションはうまくやっていますが、新しいウィンドウでアプリケーションを乱雑にするような気がします。 私が今行っているのは、ListReadをStreamReaderクラスの使用から得たリストで埋め込むことです。 私は、すべてのデータをバインドするようにしたクラスも使用しています。ダブルクリックするとリストビュー項目の値を変更するにはどうすればよいですか?

ListViewItemをダブルクリックすると、新しいウィンドウが開き、値が既に入力されているプロパティ&が開き、そのように変更できます。 しかし、私がしたいのは、新しいウィンドウを開き、ダブルクリックするとListViewの値を変更できるようにすることです。 私のオプションは何ですか?これを達成するための正しい方法は何ですか?

XAML

  </ListView.View> 
      <ListView.ItemContainerStyle> 
       <Style TargetType="ListViewItem"> 
        <EventSetter Event="PreviewMouseLeftButtonDown" Handler="ListViewItem_PreviewMouseLeftButtonDown" /> 
       </Style> 
      </ListView.ItemContainerStyle> 
     </ListView> 

CS

private void ListViewItem_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e) 
     { 
      if (sender is ListViewItem item && item.IsSelected) 
      { 
       var SelectedServerProperties = ((ServerProperties)lvServerProperties.SelectedItem); 
       Properties.Settings.Default.ServerProperty = SelectedServerProperties.Property; 
       Properties.Settings.Default.ServerPropertyValue = SelectedServerProperties.Value; 

       PropertyChangerWindow pcw = new PropertyChangerWindow(); 
       pcw.Show(); 
      } 
     } 

PropertyWindow

public partial class PropertyChangerWindow : Window 
    { 
     public PropertyChangerWindow() 
     { 
      InitializeComponent(); 
      tbProperty.Text = Properties.Settings.Default.ServerProperty; 
      tbValue.Text = Properties.Settings.Default.ServerPropertyValue; 
     } 

    } 
<DataGrid> 
    <DataGrid.Columns> 
     <DataGridTextColumn Header="Property" Binding="{Binding Property}" /> 
     <DataGridTextColumn Header="Value" Binding="{Binding Value}" /> 
    </DataGrid.Columns> 
</DataGrid> 

DataGridがこれを提供します。あなたは、あなたがそれを単にダブルクリックしてセルの編集モードに入ることができるようになりますDataGridListViewを交換する場合ServerPropertiesクラス

public class ServerProperties 
{ 
    public string Property { get; set; } 
    public string Value { get; set; } 
} 

答えて

1

機能をそのまま使用できます。

+0

すごい!クイック質問、そこに現れる青矢印を取り除く方法はありますか?私はテンプレートのパーチャップをする必要がありますか? https://i.imgur.com/iTIBIA4.gifv –

+0

DataGridのCanUserSortColumnsプロパティをfalseに設定するだけです。 – mm8

+0

ああそうだよ!そして、あまりにも多くの質問をしなければ、アイテムをダブルクリックしたときにこのビューにEditItemが表示され続ける理由を知っていますか?それとも新しい質問を投稿すべきですか? –

関連する問題