update TableView

支持Counter
pull/497/head
何冠峰 2025-02-21 16:54:43 +08:00
parent 7eacb46555
commit 82c57c382f
3 changed files with 30 additions and 16 deletions

View File

@ -72,6 +72,7 @@ namespace YooAsset.Editor
columnStyle.Stretchable = true; columnStyle.Stretchable = true;
columnStyle.Searchable = true; columnStyle.Searchable = true;
columnStyle.Sortable = true; columnStyle.Sortable = true;
columnStyle.Counter = true;
var column = new TableColumn("AssetPath", "Asset Path", columnStyle); var column = new TableColumn("AssetPath", "Asset Path", columnStyle);
column.MakeCell = () => column.MakeCell = () =>
{ {

View File

@ -72,6 +72,7 @@ namespace YooAsset.Editor
columnStyle.Stretchable = true; columnStyle.Stretchable = true;
columnStyle.Searchable = true; columnStyle.Searchable = true;
columnStyle.Sortable = true; columnStyle.Sortable = true;
columnStyle.Counter = true;
var column = new TableColumn("BundleName", "Bundle Name", columnStyle); var column = new TableColumn("BundleName", "Bundle Name", columnStyle);
column.MakeCell = () => column.MakeCell = () =>
{ {
@ -181,6 +182,7 @@ namespace YooAsset.Editor
columnStyle.Stretchable = true; columnStyle.Stretchable = true;
columnStyle.Searchable = true; columnStyle.Searchable = true;
columnStyle.Sortable = true; columnStyle.Sortable = true;
columnStyle.Counter = true;
var column = new TableColumn("IncludeAssets", "Include Assets", columnStyle); var column = new TableColumn("IncludeAssets", "Include Assets", columnStyle);
column.MakeCell = () => column.MakeCell = () =>
{ {

View File

@ -27,7 +27,7 @@ namespace YooAsset.Editor
private List<ITableData> _sortingDatas; private List<ITableData> _sortingDatas;
// 排序相关 // 排序相关
private string _sortingHeaderElement = string.Empty; private string _sortingHeader;
private bool _descendingSort = true; private bool _descendingSort = true;
/// <summary> /// <summary>
@ -192,15 +192,37 @@ namespace YooAsset.Editor
_listView.itemsSource = itemsSource.ToList(); _listView.itemsSource = itemsSource.ToList();
_listView.Rebuild(); _listView.Rebuild();
// 动态设置元素数量 // 刷新标题栏
RefreshToobar();
}
private void RefreshToobar()
{
// 设置为原始标题
foreach (var column in _columns)
{
var toobarButton = _toolbar.Q<ToolbarButton>(column.ElementName);
toobarButton.text = column.HeaderTitle;
}
// 设置元素数量
foreach (var column in _columns) foreach (var column in _columns)
{ {
if (column.ColumnStyle.Counter) if (column.ColumnStyle.Counter)
{ {
var toobarButton = GetHeaderElement(column.ElementName) as ToolbarButton; var toobarButton = GetHeaderElement(column.ElementName) as ToolbarButton;
toobarButton.text = $"{column.HeaderTitle} ({itemsSource.Count()})"; toobarButton.text = $"{toobarButton.text} ({itemsSource.Count()})";
} }
} }
// 设置升降符号
if (string.IsNullOrEmpty(_sortingHeader) == false)
{
var _toobarButton = _toolbar.Q<ToolbarButton>(_sortingHeader);
if (_descendingSort)
_toobarButton.text = $"{_toobarButton.text} ↓";
else
_toobarButton.text = $"{_toobarButton.text} ↑";
}
} }
/// <summary> /// <summary>
@ -247,9 +269,9 @@ namespace YooAsset.Editor
if (clickedColumn.ColumnStyle.Sortable == false) if (clickedColumn.ColumnStyle.Sortable == false)
return; return;
if (_sortingHeaderElement != clickedColumn.ElementName) if (_sortingHeader != clickedColumn.ElementName)
{ {
_sortingHeaderElement = clickedColumn.ElementName; _sortingHeader = clickedColumn.ElementName;
_descendingSort = false; _descendingSort = false;
} }
else else
@ -257,17 +279,6 @@ namespace YooAsset.Editor
_descendingSort = !_descendingSort; _descendingSort = !_descendingSort;
} }
// 升降符号
foreach (var column in _columns)
{
var button = _toolbar.Q<ToolbarButton>(column.ElementName);
button.text = column.HeaderTitle;
}
if (_descendingSort)
toolbarBtn.text = $"{clickedColumn.HeaderTitle} ↓";
else
toolbarBtn.text = $"{clickedColumn.HeaderTitle} ↑";
// 升降排序 // 升降排序
if (_descendingSort) if (_descendingSort)
_sortingDatas = _itemsSource.OrderByDescending(tableData => tableData.Cells[clickedColumn.ColumnIndex]).ToList(); _sortingDatas = _itemsSource.OrderByDescending(tableData => tableData.Cells[clickedColumn.ColumnIndex]).ToList();