mirror of
https://github.com/Artemis-RGB/Artemis
synced 2025-12-13 05:48:35 +00:00
Core - Nullability fixes (and I need a build)
This commit is contained in:
parent
3246505cc0
commit
ac960b8f31
@ -163,21 +163,16 @@ public abstract class DataModelVisualizationViewModel : ReactiveObject, IDisposa
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="looseMatch">Whether the type may be a loose match, meaning it can be cast or converted</param>
|
/// <param name="looseMatch">Whether the type may be a loose match, meaning it can be cast or converted</param>
|
||||||
/// <param name="filteredTypes">The types to filter</param>
|
/// <param name="filteredTypes">The types to filter</param>
|
||||||
public void ApplyTypeFilter(bool looseMatch, params Type[]? filteredTypes)
|
public void ApplyTypeFilter(bool looseMatch, params Type?[]? filteredTypes)
|
||||||
{
|
{
|
||||||
if (filteredTypes != null)
|
if (filteredTypes != null)
|
||||||
{
|
filteredTypes = filteredTypes.All(t => t == null) ? null : filteredTypes.Where(t => t != null).ToArray();
|
||||||
if (filteredTypes.All(t => t == null))
|
|
||||||
filteredTypes = null;
|
|
||||||
else
|
|
||||||
filteredTypes = filteredTypes.Where(t => t != null).ToArray();
|
|
||||||
}
|
|
||||||
|
|
||||||
// If the VM has children, its own type is not relevant
|
// If the VM has children, its own type is not relevant
|
||||||
if (Children.Any())
|
if (Children.Any())
|
||||||
{
|
{
|
||||||
foreach (DataModelVisualizationViewModel child in Children)
|
foreach (DataModelVisualizationViewModel child in Children)
|
||||||
child?.ApplyTypeFilter(looseMatch, filteredTypes);
|
child.ApplyTypeFilter(looseMatch, filteredTypes);
|
||||||
|
|
||||||
IsMatchingFilteredTypes = true;
|
IsMatchingFilteredTypes = true;
|
||||||
return;
|
return;
|
||||||
@ -287,7 +282,7 @@ public abstract class DataModelVisualizationViewModel : ReactiveObject, IDisposa
|
|||||||
foreach (PropertyInfo propertyInfo in modelType.GetProperties(BindingFlags.Public | BindingFlags.Instance).OrderBy(t => t.MetadataToken))
|
foreach (PropertyInfo propertyInfo in modelType.GetProperties(BindingFlags.Public | BindingFlags.Instance).OrderBy(t => t.MetadataToken))
|
||||||
{
|
{
|
||||||
string childPath = AppendToPath(propertyInfo.Name);
|
string childPath = AppendToPath(propertyInfo.Name);
|
||||||
if (Children.Any(c => c?.Path != null && c.Path.Equals(childPath)))
|
if (Children.Any(c => c.Path != null && c.Path.Equals(childPath)))
|
||||||
continue;
|
continue;
|
||||||
if (propertyInfo.GetCustomAttribute<DataModelIgnoreAttribute>() != null)
|
if (propertyInfo.GetCustomAttribute<DataModelIgnoreAttribute>() != null)
|
||||||
continue;
|
continue;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user