Je veux créer une relation entre mon TreeView et DataGrid J'ai une méthode appelée SelectedTestElement qui appelle une la méthode SearchGridComment lier la propriété à un TreeView
ViewModel:
public TestElementViewModel SelectedTestElement
{
set
{
if (_selectedTestElement == value) return;
this._ selectedTestElement = value;
SearchGrid(value.Id, new List< TestElementViewModel>(testElementViewModel.GetAllTreeNodes()));
}
get
{
return this._ selectedTestElement;
}
}
Je veux lier cette propriété dans mon XAML TreeView
<TreeView Margin="644,137,6,6" Grid.RowSpan="2" ItemsSource="{Binding MessageElements, Mode=TwoWay}" TreeViewItem.Selected="{Binding SelectedTestElement, Mode=TwoWay}" />
est-treeView.Selected une meilleure façon de faire l'appel de biens en TreeView?
Edit:
ViewModel:
je sélectionne une treenode-à-dire SelectedTreeNode sera lier à 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;
}
}
// faire la recherche et mettre en évidence la grille id correspondant
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}" >
..J'ai mis à jour mon code en fonction de votre suggestion, mais il semble que lorsque j'essaie de le déboguer ne rentrera pas dans cette propriété. –
@AydaSayed Avez-vous activé le débogage de liaison WPF, voir: http://msdn.microsoft.com/fr-fr/library/dd409960.aspx. Je suppose que votre propriété 'SelectedTreeNode' doit être de type' TreeViewItem' et non votre modèle de vue. Et vous aurez besoin d'une deuxième propriété qui renvoie le modèle de vue basé sur le 'TreeViewItem' qui est sélectionné. – CodingGorilla
Gorille Je trouve un moyen de sélectionner un nœud de l'arbre maintenant je veux mettre en évidence une ligne dans ma grille s'il y a un identifiant correspondant à l'arbre. On dirait que la méthode que j'ai n'a pas fonctionné. toute suggestion? –