849bdcd089
- Removed BindingType enum and all related logic from Binding. - Made Binding implement new IBinding and IKeyed interfaces. - Moved node selection logic to IBinding.Select; removed Resolve* methods from Binding. - Added new IBinding interface for XPath/CssPath selection. - Refactored IDataProvider to generic IDataProvider<T>; removed GetNode. - Updated ListContentDataProvider and ParagraphedContentDataProvider to use IBinding. - Added new ContentsDataProvider, ContentsArrayDataProvider, and DropDownDataProvider for flexible data extraction. - Updated DataBindings to use IDataProvider<T> properties instead of Binding. - Updated all usages to new interfaces and patterns.
16 lines
484 B
C#
16 lines
484 B
C#
using HtmlAgilityPack;
|
|
|
|
namespace Beam.Dynamic {
|
|
public class ContentsArrayDataProvider : ContentsDataProvider, IDataProvider<string[]> {
|
|
public string[] ArrayDelimiters { get; set; } = [";"];
|
|
|
|
string[] IDataProvider<string[]>.Get(HtmlDocument document) {
|
|
if (Content is null)
|
|
return [];
|
|
|
|
return Content.Select(document)?.InnerText?.Split(ArrayDelimiters, StringSplitOptions.RemoveEmptyEntries) ?? [];
|
|
}
|
|
}
|
|
|
|
}
|