Как я могу удалить Child UIElement из Grid с помощью лямбды? - PullRequest
0 голосов
/ 17 мая 2019

Вот XAML:

<Grid x:Name="G">
        <Grid.ColumnDefinitions>
            <ColumnDefinition></ColumnDefinition>
            <ColumnDefinition></ColumnDefinition>
            <ColumnDefinition></ColumnDefinition>
            <ColumnDefinition></ColumnDefinition>
        </Grid.ColumnDefinitions>
        <CheckBox Grid.Column="0"></CheckBox>
        <CheckBox Grid.Column="1" IsChecked="True"></CheckBox>
        <CheckBox Grid.Column="2" IsChecked="True"></CheckBox>
        <CheckBox Grid.Column="3"></CheckBox>
    </Grid>

Я хочу удалить все CheckBox в Grid, что IsChecked верно.

Итак, я написал код следующим образом:

var RemoveList=G.Children.OfType<CheckBox>().Where(Child => Child.IsChecked == true);
foreach (CheckBox CB in RemoveList.ToList())
      {
      G.Children.Remove(CB);
      }

Я думаю, что мой код избыточен с помощью var RemoveList и должен изменить его на List.

Я хочу найти способ, просто удалить UIElement только однимкод строки и заставляет меня узнать больше о лямбда.

Есть ли способ сделать это?Спасибо.

1 Ответ

2 голосов
/ 17 мая 2019
G.Children
    .OfType<CheckBox>()
    .Where(child => child.IsChecked == true)
    .ToList()
    .ForEach(child => G.Children.Remove(child));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...