ui(manager): search for DataGrid
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
xmlns:symbols="clr-namespace:Pilz.UI.Symbols;assembly=Pilz.UI"
|
||||
xmlns:mainWindow="clr-namespace:ModpackUpdater.Apps.Manager.Ui.Models.MainWindow"
|
||||
xmlns:langRes="clr-namespace:ModpackUpdater.Apps.Manager.LangRes"
|
||||
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||
mc:Ignorable="d" d:DesignWidth="1000" d:DesignHeight="450"
|
||||
x:Class="ModpackUpdater.Apps.Manager.Ui.MainWindow"
|
||||
Title="Minecraft Modpack Manager"
|
||||
WindowState="Maximized"
|
||||
@@ -109,44 +109,55 @@
|
||||
Orientation="Horizontal"
|
||||
VerticalAlignment="Center">
|
||||
|
||||
<!-- Panel: Menu list -->
|
||||
<StackPanel
|
||||
Orientation="Horizontal">
|
||||
|
||||
<!-- Button: Add action -->
|
||||
<pilz:ImageButton
|
||||
x:Name="ButtonAddAction"
|
||||
Text="{x:Static langRes:GeneralLangRes.Add}"
|
||||
ImageSource="{x:Static local:MainWindow.ButtonImageAddAction}"
|
||||
Background="Transparent"
|
||||
Click="ButtonAddAction_OnClick"/>
|
||||
|
||||
<!-- Button: Remove action -->
|
||||
<pilz:ImageButton
|
||||
x:Name="ButtonRemoveAction"
|
||||
Text="{x:Static langRes:GeneralLangRes.Remove}"
|
||||
ImageSource="{x:Static local:MainWindow.ButtonImageRemoveAction}"
|
||||
Background="Transparent"
|
||||
Click="ButtonRemoveAction_OnClick"/>
|
||||
</StackPanel>
|
||||
|
||||
<!-- TextBox: Search -->
|
||||
<TextBox
|
||||
Width="200"
|
||||
Watermark="{x:Static langRes:GeneralLangRes.Search}"
|
||||
Text="{Binding CurrentGridRows.SearchText}"/>
|
||||
|
||||
<!-- Panel: Menu -->
|
||||
<ContentControl
|
||||
Content="{Binding SelectedTreeNode}">
|
||||
Content="{Binding SelectedTreeNode}"
|
||||
>
|
||||
|
||||
<ContentControl.DataTemplates>
|
||||
<DataTemplate
|
||||
DataType="mainWindow:ActionSetTreeNode">
|
||||
|
||||
<StackPanel
|
||||
Orientation="Horizontal">
|
||||
Orientation="Horizontal"
|
||||
Spacing="6">
|
||||
|
||||
<!-- TextBox: Version -->
|
||||
<TextBox
|
||||
Margin="3, 0, 3, 0"
|
||||
Width="100"
|
||||
Text="{Binding Version}"/>
|
||||
|
||||
<!-- CheckBox: Is public -->
|
||||
<CheckBox
|
||||
Margin="3, 0, 3, 0"
|
||||
Content="{x:Static langRes:GeneralLangRes.Public}"
|
||||
IsChecked="{Binding IsPublic}"/>
|
||||
|
||||
<!-- Button: Add action -->
|
||||
<pilz:ImageButton
|
||||
x:Name="ButtonAddAction"
|
||||
Text="{x:Static langRes:GeneralLangRes.Add}"
|
||||
ImageSource="{x:Static local:MainWindow.ButtonImageAddAction}"
|
||||
Background="Transparent"
|
||||
Click="ButtonAddAction_OnClick"/>
|
||||
|
||||
<!-- Button: Remove action -->
|
||||
<pilz:ImageButton
|
||||
x:Name="ButtonRemoveAction"
|
||||
Text="{x:Static langRes:GeneralLangRes.Remove}"
|
||||
ImageSource="{x:Static local:MainWindow.ButtonImageRemoveAction}"
|
||||
Background="Transparent"
|
||||
Click="ButtonRemoveAction_OnClick"/>
|
||||
</StackPanel>
|
||||
</DataTemplate>
|
||||
|
||||
|
||||
@@ -29,10 +29,6 @@ public class DynamicDataView<T> : INotifyPropertyChanged where T : notnull
|
||||
public string? SearchText
|
||||
{
|
||||
get => searchText;
|
||||
set
|
||||
{
|
||||
searchText = value;
|
||||
searchTextSubject.OnNext(value);
|
||||
}
|
||||
set => searchTextSubject.OnNext(searchText = value);
|
||||
}
|
||||
}
|
||||
@@ -65,6 +65,21 @@ public class MainWindowViewModel : INotifyPropertyChanged
|
||||
|
||||
private static Func<MainWindowGridRow, bool> FilterGridRows(string? searchText)
|
||||
{
|
||||
return n => string.IsNullOrWhiteSpace(searchText) || true;
|
||||
return n => string.IsNullOrWhiteSpace(searchText)
|
||||
|| (!string.IsNullOrWhiteSpace(n.Name) && n.Name.Contains(searchText))
|
||||
|| (!string.IsNullOrWhiteSpace(n.InheritFrom) && n.InheritFrom.Contains(searchText))
|
||||
|| (!string.IsNullOrWhiteSpace(n.InheritedDestPath) && n.InheritedDestPath.Contains(searchText))
|
||||
|| (!string.IsNullOrWhiteSpace(n.InheritedId) && n.InheritedId.Contains(searchText))
|
||||
|| (!string.IsNullOrWhiteSpace(n.InheritedSide) && n.InheritedSide.Contains(searchText))
|
||||
|| (!string.IsNullOrWhiteSpace(n.InheritedSourceType) && n.InheritedSourceType.Contains(searchText))
|
||||
|| (!string.IsNullOrWhiteSpace(n.InheritedUpdateType) && n.InheritedUpdateType.Contains(searchText))
|
||||
|| (!string.IsNullOrWhiteSpace(n.SourceName) && n.SourceName.Contains(searchText))
|
||||
|| (!string.IsNullOrWhiteSpace(n.SourceOwner) && n.SourceOwner.Contains(searchText))
|
||||
|| (!string.IsNullOrWhiteSpace(n.SourceRegex) && n.SourceRegex.Contains(searchText))
|
||||
|| (!string.IsNullOrWhiteSpace(n.SourceTag) && n.SourceTag.Contains(searchText))
|
||||
|| (!string.IsNullOrWhiteSpace(n.SourceUrl) && n.SourceUrl.Contains(searchText))
|
||||
|| (!string.IsNullOrWhiteSpace(n.SrcPath) && n.SrcPath.Contains(searchText))
|
||||
|| (!string.IsNullOrWhiteSpace(n.Website) && n.Website.Contains(searchText))
|
||||
;
|
||||
}
|
||||
}
|
||||
@@ -25,7 +25,7 @@
|
||||
<!-- TextBox: Search -->
|
||||
<TextBox
|
||||
Grid.Row="0"
|
||||
Watermark="Search"
|
||||
Watermark="{x:Static langRes:GeneralLangRes.Search}"
|
||||
Text="{Binding Updates.SearchText}"/>
|
||||
|
||||
<!-- ScrollViewer: Updates -->
|
||||
|
||||
Reference in New Issue
Block a user