Найти метку по тегу в WPF MVVM - PullRequest
0 голосов
/ 18 марта 2019

Я пытаюсь найти метку по ее тегу, чтобы я мог добавить дополнительную метку рядом с определенным условием.

в старой школе winform я бы просто использовал:

Label sublabel = Controls.Find(Sub.id, true).FirstOrDefault() as Label;

фрагмент view.xaml:

<Grid>
    <Label 
        Content = "{Binding Path = NodeName, Mode = OneWay}" 
        Background = "{Binding Path = NodeStatus, Mode = OneWay}"
        Tag="{Binding Path = Nodeid, Mode = OneWay}"

Я пробовал что-то вроде этого:

var label = Grid.Children.OfType<Label>()
    .First(i => i.Tag == "tagid");

, но генерирует

An object reference is required for the non-static field, method, or property 'Panel.Children'

Спасибо за просмотр

1 Ответ

5 голосов
/ 18 марта 2019

Вы можете указать Grid и x:Name в своей разметке XAML:

<Grid x:Name="theGrid">

... и сослаться на него под этим именем в своем коде:

var label = theGrid.Children.OfType<Label>() ...

Обратите внимание, что это не MVVM каким-либо образом, хотя.Используя MVVM, вы получите доступ к свойству Nodeid source, а не к свойству Tag элемента Label.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...