我试图通过其标签定位标签,以便在满足特定条件时可以在旁边添加其他标签。
在老式的winform中,我只会使用:
Label sublabel = Controls.Find(Sub.id, true).FirstOrDefault() as Label;
Run Code Online (Sandbox Code Playgroud)
view.xaml的代码段:
<Grid>
<Label
Content = "{Binding Path = NodeName, Mode = OneWay}"
Background = "{Binding Path = NodeStatus, Mode = OneWay}"
Tag="{Binding Path = Nodeid, Mode = OneWay}"
Run Code Online (Sandbox Code Playgroud)
我已经尝试过以下方法:
var label = Grid.Children.OfType<Label>()
.First(i => i.Tag == "tagid");
Run Code Online (Sandbox Code Playgroud)
但产生
An object reference is required for the non-static field, method, or property 'Panel.Children'
Run Code Online (Sandbox Code Playgroud)
谢谢看
你可以给Grid一个x:Name在XAML标记:
<Grid x:Name="theGrid">
Run Code Online (Sandbox Code Playgroud)
...并在您的代码中使用此名称进行引用:
var label = theGrid.Children.OfType<Label>() ...
Run Code Online (Sandbox Code Playgroud)
请注意,无论如何,这不是MVVM。使用MVVM,您将访问Nodeidsource属性而不是元素的Tag属性Label。
| 归档时间: |
|
| 查看次数: |
64 次 |
| 最近记录: |