Files
ZuneShell.dll/ZuneShell/ZuneUI/StringExtractorList.cs
T

51 lines
1.6 KiB
C#

// Decompiled with JetBrains decompiler
// Type: ZuneUI.StringExtractorList
// Assembly: ZuneShell, Version=4.7.0.0, Culture=neutral, PublicKeyToken=ddd0da4d3e678217
// MVID: FC8028F3-A47B-4FB4-B35B-11D1752D8264
// Assembly location: C:\Program Files\Zune\ZuneShell.dll
using Microsoft.Iris;
using System.Collections;
namespace ZuneUI
{
public class StringExtractorList : VirtualList, ISearchableList
{
private IList _source;
private ISearchableList _searchableSource;
private bool _canSearchForString;
public IList Source
{
get => this._source;
set
{
if (this._source == value)
return;
this._source = value;
this.FirePropertyChanged(nameof(Source));
this._searchableSource = this._source as ISearchableList;
this.Reset();
}
}
public bool CanSearchForString
{
get => this._canSearchForString;
set => this._canSearchForString = value;
}
protected void Reset()
{
this.Clear();
this.Count = this._source != null ? this._source.Count : 0;
}
protected override object OnRequestItem(int index) => this.ExtractString(this._source[index]);
int ISearchableList.SearchForString(string str) => this._searchableSource != null && this._canSearchForString ? this._searchableSource.SearchForString(str) : -1;
protected virtual string ExtractString(object item) => item.ToString();
}
}