Skip to content

Commit

Permalink
chore: change test codes
Browse files Browse the repository at this point in the history
  • Loading branch information
emako committed Sep 22, 2024
1 parent 1469ed4 commit d377350
Show file tree
Hide file tree
Showing 5 changed files with 54 additions and 24 deletions.
8 changes: 4 additions & 4 deletions src/Wpf.Ui.Test/MainWindow.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -632,7 +632,7 @@
FontWeight="Black"
Text="TreeListView" />
<StackPanel Margin="0,8,0,0">
<ui:TreeListView
<!--<ui:TreeListView
Height="300"
Margin="0,8,90,0"
Model="{Binding TreeFileModel}">
Expand All @@ -655,8 +655,8 @@
Header="FullName" />
</ui:GridView.Columns>
</ui:GridView>
</ui:TreeListView>
<ui:TreeListView
</ui:TreeListView>-->
<!--<ui:TreeListView
Height="300"
Margin="0,8,90,0"
Model="{Binding TreeRegistryModel}"
Expand All @@ -680,7 +680,7 @@
Header="Data" />
</ui:GridView.Columns>
</ui:GridView>
</ui:TreeListView>
</ui:TreeListView>-->
<ui:TreeListView
Height="200"
Margin="0,8,90,0"
Expand Down
14 changes: 14 additions & 0 deletions src/Wpf.Ui.Test/MainWindow.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,20 @@ private void AddTreeTestModel()
Column2 = "Test Added " + DateTime.Now,
Column3 = "Test Added " + DateTime.Now,
});

TreeTestModel.Children[0].Children.Add(new TreeTestModel()
{
Column1 = "Test Added " + DateTime.Now,
Column2 = "Test Added " + DateTime.Now,
Column3 = "Test Added " + DateTime.Now,
});

TreeTestModel.Children[0].Children[0].Children.Add(new TreeTestModel()
{
Column1 = "Test Added " + DateTime.Now,
Column2 = "Test Added " + DateTime.Now,
Column3 = "Test Added " + DateTime.Now,
});
}

[RelayCommand]
Expand Down
10 changes: 5 additions & 5 deletions src/Wpf.Ui.Violeta/Controls/TreeListView/TreeListView.cs
Original file line number Diff line number Diff line change
Expand Up @@ -90,10 +90,10 @@ protected override bool IsItemItsOwnContainerOverride(object item)

protected override void PrepareContainerForItemOverride(DependencyObject element, object item)
{
if (element is TreeListViewItem { } ti && item is TreeNode { } node)
if (element is TreeListViewItem { } ti && item is ITreeNode { } node)
{
ti.Node = item as TreeNode;
base.PrepareContainerForItemOverride(element, node.Tag);
base.PrepareContainerForItemOverride(element, node.Content);
}
}

Expand Down Expand Up @@ -133,7 +133,7 @@ internal void CreateChildrenNodes(TreeNode node)
child.HasChildren = HasChildren(child);
node.Children.Add(child);
}
Rows.InsertRange(rowIndex + 1, node.Children.ToArray());
Rows.InsertRange(rowIndex + 1, [.. node.Children]);
}
}

Expand Down Expand Up @@ -170,7 +170,7 @@ internal void DropChildrenRows(TreeNode node, bool removeParent)
{
if (Model != null)
{
return Model.GetChildren(parent?.Tag!);
return Model.GetChildren(parent?.Content!);
}
else
{
Expand All @@ -186,7 +186,7 @@ private bool HasChildren(TreeNode parent)
}
else if (Model != null)
{
return Model.HasChildren(parent?.Tag!);
return Model.HasChildren(parent?.Content!);
}
else
{
Expand Down
40 changes: 26 additions & 14 deletions src/Wpf.Ui.Violeta/Controls/TreeListView/TreeNode.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

namespace Wpf.Ui.Controls;

public sealed class TreeNode : INotifyPropertyChanged
public class TreeNode : ITreeNode, INotifyPropertyChanged
{
private class NodeCollection(TreeNode owner) : Collection<TreeNode>
{
Expand Down Expand Up @@ -58,10 +58,7 @@ protected override void RemoveItem(int index)

protected override void SetItem(int index, TreeNode item)
{
if (item == null)
{
throw new ArgumentNullException(nameof(item));
}
_ = item ?? throw new ArgumentNullException(nameof(item));

RemoveAt(index);
InsertItem(index, item);
Expand All @@ -77,7 +74,7 @@ private void OnPropertyChanged(string name)

private TreeListView _tree;

internal TreeListView Tree => _tree;
public TreeListView Tree => _tree;

private INotifyCollectionChanged _childrenSource = null!;

Expand Down Expand Up @@ -139,8 +136,8 @@ public bool IsExpanded
if (value != IsExpanded)
{
Tree.SetIsExpanded(this, value);
OnPropertyChanged("IsExpanded");
OnPropertyChanged("IsExpandable");
OnPropertyChanged(nameof(IsExpanded));
OnPropertyChanged(nameof(IsExpandable));
}
}
}
Expand All @@ -162,7 +159,7 @@ public bool IsSelected
if (value != _isSelected)
{
_isSelected = value;
OnPropertyChanged("IsSelected");
OnPropertyChanged(nameof(IsSelected));
}
}
}
Expand Down Expand Up @@ -255,9 +252,9 @@ public IEnumerable<TreeNode> AllVisibleChildren
}
}

private object? _tag = null;
private object? _content = null;

public object? Tag => _tag;
public object? Content => _content;

private Collection<TreeNode> _children = null!;

Expand All @@ -267,19 +264,19 @@ public IEnumerable<TreeNode> AllVisibleChildren

public ReadOnlyCollection<TreeNode> Nodes => _nodes;

internal TreeNode(TreeListView tree, object tag)
internal TreeNode(TreeListView tree, object? content)
{
_ = tree ?? throw new ArgumentNullException(nameof(tree));

_tree = tree;
_children = new NodeCollection(this);
_nodes = new ReadOnlyCollection<TreeNode>(_children);
_tag = tag;
_content = content;
}

public override string ToString()
{
return Tag != null ? Tag.ToString()! : base.ToString()!;
return Content != null ? Content.ToString()! : base.ToString()!;
}

private void ChildrenChanged(object? sender, NotifyCollectionChangedEventArgs e)
Expand Down Expand Up @@ -339,3 +336,18 @@ private void ClearChildrenSource(TreeNode node)
}
}
}

public interface ITreeNode
{
public TreeListView Tree { get; }

public bool IsExpanded { get; set; }

public bool IsExpandable { get; }

public bool IsSelected { get; set; }

public int Level { get; }

public object? Content { get; }
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

namespace Wpf.Ui.Controls;

internal sealed class TreeRowCollection<T> : ObservableCollection<T>
public class TreeRowCollection<T> : ObservableCollection<T>
{
public void RemoveRange(int index, int count)
{
Expand All @@ -27,6 +27,10 @@ public void InsertRange(int index, IEnumerable<T> collection)
OnReset();
}

/// <summary>
/// <see cref="ObservableCollection{T}.CountString"/>
/// <see cref="ObservableCollection{T}.IndexerName"/>
/// </summary>
private void OnReset()
{
OnPropertyChanged(nameof(Count));
Expand Down

0 comments on commit d377350

Please sign in to comment.