Два примера, когда здоровая лень - это здорово!
Первый пример из XAML.Есть три ListBox следующего вида:
Первый пример из XAML.Есть три ListBox следующего вида:
<ListBox Grid.Row="2" x:Name="lbToDo" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ItemTemplate="{StaticResource ToDoAndDoneItems}"> <ListBox.ItemsPanel> <ItemsPanelTemplate> <WrapPanel>WrapPanel> ItemsPanelTemplate> ListBox.ItemsPanel> ListBox> <ListBox Grid.Row="2" Grid.Column="1" x:Name="lbInProgress" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ItemTemplate="{StaticResource InProgressItems}"> <ListBox.ItemsPanel> <ItemsPanelTemplate> <WrapPanel>WrapPanel> ItemsPanelTemplate> ListBox.ItemsPanel> ListBox> <ListBox Grid.Row="2" Grid.Column="2" x:Name="lbDone" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ItemTemplate="{StaticResource ToDoAndDoneItems}"> <ListBox.ItemsPanel> <ItemsPanelTemplate> <WrapPanel>WrapPanel> ItemsPanelTemplate> ListBox.ItemsPanel> ListBox> Выносим все общее в стили и получаем:
<ItemsPanelTemplate x:Key="WrapItemsPanel"> <WrapPanel>WrapPanel> ItemsPanelTemplate> <Style TargetType="ListBox"> <Setter Property="Grid.Row" Value="2" /> <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Disabled" /> <Setter Property="ItemsPanel" Value="{StaticResource WrapItemsPanel}" /> <Setter Property="ItemTemplate" Value="{StaticResource ToDoAndDoneItems}" /> Style><ListBox x:Name="lbToDo" /> <ListBox Grid.Column="1" x:Name="lbInProgress" ItemTemplate="{StaticResource InProgressItems}" /> <ListBox Grid.Column="2" x:Name="lbDone" />Мне кажется значительно лучше.
Ну и второй пример:
List<WorkItem> tasks = null; if (cbIterations.IsEnabled && cbIterations.SelectedItem != null) { WorkItem sprint = (WorkItem)cbIterations.SelectedItem; tasks = _allWorkItems.Where(wi => (wi.Type.Name == "Task" || wi.Type.Name == "Bug") && wi.IterationPath == sprint.IterationPath).ToList(); } else if (!cbIterations.IsEnabled) { tasks = _allWorkItems.Where(wi => wi.Type.Name == "Task" || wi.Type.Name == "Bug").ToList(); } else { tasks = new List<WorkItem>(); }В принципе, все понятно, но лучше, да и ошибок будет меньше вот при таком варианте:
private static bool IsTaskOrBug(WorkItem wi) { return wi.Type.Name == "Task" || wi.Type.Name == "Bug"; } ...
List<WorkItem> tasks = null; if (cbIterations.IsEnabled && cbIterations.SelectedItem != null) { WorkItem sprint = (WorkItem)cbIterations.SelectedItem; tasks = _allWorkItems.Where(wi => IsTaskOrBug(wi) && wi.IterationPath == sprint.IterationPath).ToList(); } else if (!cbIterations.IsEnabled) { tasks = _allWorkItems.Where(wi => IsTaskOrBug(wi)).ToList(); } else { tasks = new List<WorkItem>(); }
Хотя во втором случае я видимо уже эстетствую ))
Комментариев нет:
Отправить комментарий