Разверните целый TreeView в Silverlight

Я думаю, что персистентная файловая система только не удаляет данные, которые уже существуют в файле SquashFS, т.е. что уже там по умолчанию. Таким образом, при попытке удалить, скажем, Firefox, то затем Вы не получите пространство. Однако, если Вы установите новый программа, как Гибридный язык и затем более поздний Гибридный язык удаления, то затем Вы будете свободный Ваше пространство.

Поэтому, если Вы только собираетесь установить и не собираетесь удалить то, что Вы уже установили, затем персистентность является наилучшим вариантом, должен использовать персистентную файловую систему, потому что, если Вы делаете полную установку затем, она займет больше места. Полная установка занимает больше места, потому что, когда Вы делаете установку затем, она распаковывает то, что было в (высоко сжато) файловая система SquashFS.

, Если существуют некоторые программы в ISO по умолчанию, который Вы не собираетесь использовать, затем я предлагаю, чтобы Вы использовали UCK (Набор Настройки Ubuntu), который позволяет Вам настроить ISO Ubuntu, удалить те программы и возможно установить/обновить любые программы, которые Вы хотите использовать. Тем путем все те изменения будут в файловой системе SquashFS также, таким образом, все будет сжато, и Вы будете иметь больше свободного пространства в запасе в конце ее.

Это - то, что я делал в течение некоторого времени теперь, и это работало приятно.

8
задан Andrei Rînea 3 September 2009 в 07:22
поделиться

7 ответов

Сначала прочтите этот пост: http://bea.stollnitz.com/blog/?p=55

Во-вторых, наследовать TreeViewItem и TreeView:

public class TreeViewItemEx : TreeViewItem {
    protected override DependencyObject GetContainerForItemOverride() {
        TreeViewItemEx tvi = new TreeViewItemEx();
        Binding expandedBinding = new Binding("IsExpanded");
        expandedBinding.Mode = BindingMode.TwoWay;
        tvi.SetBinding(TreeViewItemEx.IsExpandedProperty, expandedBinding);
        return tvi;
    }
}

public class TreeViewEx : TreeView {
    protected override DependencyObject GetContainerForItemOverride() {
        TreeViewItemEx tvi = new TreeViewItemEx();
        Binding expandedBinding = new Binding("IsExpanded");
        expandedBinding.Mode = BindingMode.TwoWay;
        tvi.SetBinding(TreeViewItemEx.IsExpandedProperty, expandedBinding);

        return tvi;
    }
}

В-третьих, привязать свойство вашей Модели к «IsExpanded».

9
ответ дан 5 December 2019 в 05:03
поделиться

yourtreeview.ExpandAll ()

EDIT : Мартин указал, что метод ExpandAll () не существует для TreeView, однако я просто набрал следующий код в моем проекте Silverlight, и intellisense подобрал:

TreeView test = new TreeView();
            test.ExpandAll();

You также можно установить атрибут TreeView IsExpanded = "true" в XAML, хотя я не уверен, расширяет ли это все дерево или только один уровень

1
ответ дан 5 December 2019 в 05:03
поделиться

Экземпляр перечисления может иметь любое присваиваемое базовому типу (например, int.MinValue - int.MaxValue для любого обычного перечисления) ). Вы можете получить список значений с именем , вызвав Enum.GetNames и Enum.GetValues ​​.

. MaxValue для любого обычного перечисления). Вы можете получить список значений с именами , вызвав Enum.GetNames и Enum.GetValues ​​.

. MaxValue для любого обычного перечисления). Вы можете получить список значений с именем , вызвав Enum.GetNames и Enum.GetValues ​​.

. особенно для систем с высокой пропускной способностью, было бы использовать дизайн, основанный на очередях, где обрабатывающий объект будет выполнять операции с объектом, а затем на основе результатов помещать объект в разные очереди для дополнительной обработки другими объектами, а затем двигаться дальше. Это уменьшит узкие места, которые могут возникнуть из-за дополнительной обработки, которая может потребоваться, например, обработка заказа на товары, отсутствующие на складе

public static class TreeViewExtensions {

  public static void ExpandAll(this TreeView treeView) {
    for (Int32 i = 0; i < treeView.Items.Count; ++i) {
      TreeViewItem item = treeView.ItemContainerGenerator.ContainerFromIndex(i) as TreeViewItem;
      if (item != null)
        ExpandAll(item);
    }
  }

  static void ExpandAll(TreeViewItem item) {
    if (!item.IsExpanded) {
      item.IsExpanded = true;
      item.Dispatcher.BeginInvoke(() => ExpandAll(item));
    }
    else {
      for (Int32 i = 0; i < item.Items.Count; ++i) {
        TreeViewItem childItem = item.ItemContainerGenerator.ContainerFromIndex(i) as TreeViewItem;
        if (childItem != null)
          ExpandAll(childItem);
      }
    }
  }
4
ответ дан 5 December 2019 в 05:03
поделиться

Я не вижу, чтобы на вопрос был дан ответ, поскольку TreeViewItem всегда имеет значение NULL:

TreeViewItem item = treeView.ItemContainerGenerator.ContainerFromIndex(i) as TreeViewItem;
      if (item != null)
        ExpandAll(item);

Вызовите UpdateLayout () в TreeView, прежде чем пытаться получить TreeViewItem. Это должно помочь!

0
ответ дан 5 December 2019 в 05:03
поделиться

, если вы хотите сделать это в Xaml, это можно сделать с помощью набора инструментов silverlight ресурс сборки тем и настройки стилей. Код доступен здесь: http://bea.stollnitz.com/blog/?p=54

0
ответ дан 5 December 2019 в 05:03
поделиться

TreeViewMenu.Dispatcher.BeginInvoke(() => TreeViewMenu.ExpandAll());

Просто добавьте эту строку после создания элементов дерева. вот и все!

3
ответ дан 5 December 2019 в 05:03
поделиться

Я знаю, что это немного поздно, но я нашел это, когда искал ответ, и с тех пор обнаружил, что в Silverlight 4 для этого можно использовать неявные темы:

<Style TargetType="controls:TreeViewItem">
    <Setter Property="IsExpanded" Value="True" />
</Style>

В Silverlight 5 вы для этого нужно будет добавить этот код в раздел.

<Style TargetType="sdk:TreeViewItem">
    <Setter Property="IsExpanded" Value="True" />
</Style>
18
ответ дан 5 December 2019 в 05:03
поделиться
Другие вопросы по тегам:

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