2016-04-25 10 views
0

私はちょうど2つの場合にTreeView内の項目を編集可能にしたいと思います:編集項目またはホットキー

  • ユーザーがTreeView
  • たときにユーザーがクリックのContextMenuEditボタンでクリックしたときに、ツリービューの選択項目にF2を追加します。

マイTreeViewのXAML:

<TreeView ItemsSource="{Binding FooColl}" > 
    <TreeView.Resources> 
     <DiscreteObjectKeyFrame x:Key="proxy" Value="{Binding}"/> 
      <HierarchicalDataTemplate DataType="{x:Type treeViewModel:NodeViewModel}" 
                ItemsSource="{Binding Children}"> 
       <StackPanel Orientation="Horizontal"> 
        <Image Source="treeNode.png" /> 
        <TextBlock Text="{Binding FooValue}"> 
        <TextBlock.ContextMenu>         
         <ContextMenu> 
          <MenuItem Header="Edit"/> 
         </ContextMenu> 
        </TextBlock.ContextMenu> 
        </TextBlock> 
       </StackPanel> 
      </HierarchicalDataTemplate> 
    </TreeView.Resources> 
</TreeView> 

私が最初に考えたのはHierarchicalDataTemplateTextBox代わりのTextBlockを使用することでした。ただし、編集モードがTextBoxの場合はMouseClickで有効になります。その結果、それは私が望むものではありません。

どうすればいいですか?あなたはIsReadOnlyプロパティを使用することができます

+0

<TextBlock Text="{Binding FooValue}" IsReadOnly="{Binding ImReadOnly}"> 

をそしてF2キー押下を処理するために、あなたはこれを試すことができますか? defautによってそれは間違っているので、ユーザーが編集時にクリックするとtrueに変わります。 – Amine

+0

@Amine yeah、私は 'IsReadonly'を使うことができます。 – StepUp

+0

問題は解決しましたか? – Amine

答えて

1

:あなたはIsReadOnlyプロパティを使用することができます

public partial class MyView : UserControl 
    { 
     public MyView() 
     { 
      InitializeComponent(); 

      this.KeyDown += new KeyEventHandler(KeyDownEvent); 
     } 

     private void KeyDownEvent(object sender, KeyEventArgs e) 
     { 
      try 
      { 
       switch (e.Key) 
       { 
        case Key.F2: 
         var vm = this.DataContext as YourViewModel; 
         vm.YourCommand.Execute(null); 
         break; 
       } 
      } 
      catch (Exception ex) 
      { 
       //... 
      } 
     } 
    } 
+0

「F2」キーを使って編集を有効にするにはどうしたらいいですか? – StepUp

+0

この例を見てください:http://stackoverflow.com/questions/2103497/detecting-the-user-pressing-f10-in-wpf – Amine

+0

そして私はこれを私のviewModelでどうやって処理できますか? – StepUp

関連する問題