@Untiwe

Как искать элементы в xml без имени?

Имеется WPF c уже расставленной сеткой, у нее есть имя "etalons_grid_perent"
<Grid x:Name="etalons_grid_perent" Background="#FF96B7F9" Height="346" >
                <Grid.RowDefinitions>
                    <RowDefinition Height="*" MinHeight="80"/>
                    <RowDefinition Height="*" MinHeight="80"/>
                    <RowDefinition Height="*" MinHeight="80"/>
                </Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="50*" MinWidth="100"/>
                    <ColumnDefinition Width="50*" MinWidth="100"/>
                    <ColumnDefinition Width="50*" MinWidth="100"/>
                    <ColumnDefinition Width="50*" MinWidth="100"/>
                </Grid.ColumnDefinitions>
</Grid>


Программа динамически создает элементы(сетки по меньше) от 0 до 9 и расставляет их по ячейкам родительского grid
Пример кода одного элемента
<Grid Grid.Column="1">
            <Grid.RowDefinitions>
                <RowDefinition Height = "0.8*" />
                < RowDefinition Height= "1*" />
            </Grid.RowDefinitions >
            < Label Content= "EtalonName_1" VerticalAlignment= "Bottom" HorizontalAlignment= "Center" />
            < TextBox HorizontalAlignment= "Center" Grid.Row= "1" Text= "----" VerticalAlignment= "Top" Width= "80" Margin="0,10,0,0" TextAlignment= "Center" />
        </ Grid >


В будущем я хочу перебирать эти элементы и редактировать/удалять.
Вопрос, как я могу выбрать все элементы по какому ни будь критерию?

Пример того, что мне нужно
Label[] label = etalons_grid_perent.AllChildren(Label, search_in_children = True).Filter(Content = "EtalonName_1");
  • Вопрос задан
  • 64 просмотра
Решения вопроса 1
@cicatrix
было бы большой ошибкой думать
Вопрос первый: а если ты их добавляешь динамически, чего ты ссылки на них не хранишь в массиве, например?
Если по каким-то причинам ты так делать не хочешь, вопрос второй - тэг Content предназначен для указания... контента (содержимого) элемента, но никак не метки (имени). Для этого есть атрибут "Name"
Ну а так:
.Where(l => l.Content.Contains("EtalonName"));
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы