0

ツリービューとデータグリッドの間に関係を作成したいのですが、SearchGrid メソッドを呼び出す SelectedTestElement というメソッドがあります。

ビューモデル:

     public TestElementViewModel SelectedTestElement
    {
        set
        {
            if (_selectedTestElement == value) return;
            this._ selectedTestElement = value;


            SearchGrid(value.Id, new List< TestElementViewModel>( testElementViewModel.GetAllTreeNodes()));

        }
        get
        {
            return this._ selectedTestElement;
        }

    }

このプロパティを xaml TreeView にバインドしたい

   <TreeView Margin="644,137,6,6" Grid.RowSpan="2" ItemsSource="{Binding MessageElements,  Mode=TwoWay}" TreeViewItem.Selected="{Binding SelectedTestElement, Mode=TwoWay}" />

treeView.Selected は、ツリービューでプロパティを呼び出すための最良の方法ですか?

編集:

ビューモデル:

ツリーノードを選択します。つまり、SelectedTreeNode は TreeView.SelectedItem にバインドされます

      public TreeNodeViewModel SelectedTreeNode
     {
        set
        {
            if (_selectedTreeNode== value) return;
            this._selectedTreeNode = value;

            //search the treenode id
            SearchGrid(value.Id, TestFieldVModel.GetAllTestField());

        }
        get
        {
            return this._selectedTreeNode;
        }

    }

// 検索を実行し、一致する ID グリッドを強調表示します

       public void SearchGrid(int id, ObservableCollection<TestFieldViewModel> msgField)
     {
        foreach (var c in msgField)
        {
            c.DisplayColor = c.Id == id ? Brushes.DarkOrange : Brushes.Black;
            c.DisplayFont = c.Id == id ? FontWeights.Bold : FontWeights.Normal;

          // SearchGrid(id, c.GetAllTestField());
        }
    }

XAML:

      <TreeView Margin="644,137,6,6" Grid.RowSpan="2" ItemsSource="{Binding TreeNodes,  Mode=TwoWay}" TreeView.SelectedItem ="{Binding Path= SelectedTreeNode, Mode=TwoWay}" >
4

1 に答える 1

0

ビューモデルのプロパティにイベントをバインドしようとしています。

TreeView.SelectedItemプロパティを使用し、それをビュー モデルの新しいプロパティにバインドすることをお勧めしますTreeViewItem。次に、プロパティを変更して、新しく選択された項目のプロパティを確認し、返さSelectedTestElementれる適切なものを決定するか、新しい選択された項目のプロパティに「this._selectedTestElement」を直接設定することができます。TestElementViewModelset

于 2013-06-13T17:48:58.923 に答える