Showing preview only (829K chars total). Download the full file or copy to clipboard to get everything.
Repository: muak/AiForms.Maui.SettingsView
Branch: develop
Commit: 3af09e2dc850
Files: 230
Total size: 744.1 KB
Directory structure:
gitextract_6e89phxe/
├── .github/
│ ├── FUNDING.yml
│ └── ISSUE_TEMPLATE/
│ ├── bug_report.md
│ └── feature_request.md
├── .gitignore
├── AiForms.Maui.SettingsView.slnx
├── CONTRIBUTING-ja.md
├── CONTRIBUTING.md
├── LICENSE.txt
├── README-ja.md
├── README.md
├── Sample/
│ ├── App.xaml
│ ├── App.xaml.cs
│ ├── MauiProgram.cs
│ ├── Platforms/
│ │ ├── Android/
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── MainActivity.cs
│ │ │ ├── MainApplication.cs
│ │ │ └── Resources/
│ │ │ └── values/
│ │ │ └── colors.xml
│ │ └── iOS/
│ │ ├── AppDelegate.cs
│ │ ├── Info.plist
│ │ └── Program.cs
│ ├── Properties/
│ │ └── launchSettings.json
│ ├── Resources/
│ │ ├── Raw/
│ │ │ └── AboutAssets.txt
│ │ └── Styles/
│ │ ├── Colors.xaml
│ │ └── Styles.xaml
│ ├── Sample.csproj
│ ├── ViewModels/
│ │ ├── CustomHeaderViewModel.cs
│ │ ├── DynamicHeaderSizeViewModel.cs
│ │ ├── HeaderSurveyViewModel.cs
│ │ ├── ListViewModel.cs
│ │ ├── MainViewModel.cs
│ │ ├── SurveyViewModel.cs
│ │ └── TapSurveyViewModel.cs
│ └── Views/
│ ├── Cells/
│ │ ├── MyCellA.xaml
│ │ ├── MyCellA.xaml.cs
│ │ ├── MyCellB.xaml
│ │ ├── MyCellB.xaml.cs
│ │ ├── MyCellC.xaml
│ │ ├── MyCellC.xaml.cs
│ │ ├── SliderCell.xaml
│ │ └── SliderCell.xaml.cs
│ ├── CustomHeaderPage.xaml
│ ├── CustomHeaderPage.xaml.cs
│ ├── DynamicHeaderSizePage.xaml
│ ├── DynamicHeaderSizePage.xaml.cs
│ ├── HeaderSurveyPage.xaml
│ ├── HeaderSurveyPage.xaml.cs
│ ├── ListPage.xaml
│ ├── ListPage.xaml.cs
│ ├── MainPage.xaml
│ ├── MainPage.xaml.cs
│ ├── MyNavigationPage.cs
│ ├── SurveyPage.xaml
│ ├── SurveyPage.xaml.cs
│ ├── TapSurveyPage.xaml
│ └── TapSurveyPage.xaml.cs
├── SettingsView/
│ ├── BindableBase.cs
│ ├── CellPropertyChangedEventHandler.cs
│ ├── Cells/
│ │ ├── ButtonCell.cs
│ │ ├── CellBase.cs
│ │ ├── CheckboxCell.cs
│ │ ├── CommandCell.cs
│ │ ├── CustomCell.cs
│ │ ├── DatePickerCell.cs
│ │ ├── EntryCell.cs
│ │ ├── LabelCell.cs
│ │ ├── NumberPickerCell.cs
│ │ ├── PickerCell.cs
│ │ ├── RadioCell.cs
│ │ ├── SimpleCheckCell.cs
│ │ ├── SwitchCell.cs
│ │ ├── TextPickerCell.cs
│ │ └── TimePickerCell.cs
│ ├── DropEventArgs.cs
│ ├── Extensions/
│ │ ├── EnumerableExtension.cs
│ │ ├── FontExtension.cs
│ │ ├── HandlerCleanUpHelper.cs
│ │ └── ViewExtension.cs
│ ├── Handlers/
│ │ ├── ButtonCell/
│ │ │ ├── ButtonCellHandler.Android.cs
│ │ │ ├── ButtonCellHandler.Net.cs
│ │ │ ├── ButtonCellHandler.cs
│ │ │ └── ButtonCellHandler.iOS.cs
│ │ ├── CellBase/
│ │ │ ├── CellBaseHandler.Android.cs
│ │ │ ├── CellBaseHandler.Net.cs
│ │ │ ├── CellBaseHandler.cs
│ │ │ ├── CellBaseHandler.iOS.cs
│ │ │ └── CellBaseView.Net.cs
│ │ ├── CheckboxCell/
│ │ │ ├── CheckboxCellHandler.Android.cs
│ │ │ ├── CheckboxCellHandler.Net.cs
│ │ │ ├── CheckboxCellHandler.cs
│ │ │ └── CheckboxCellHandler.iOS.cs
│ │ ├── CommandCell/
│ │ │ ├── CommandCellHandler.Android.cs
│ │ │ ├── CommandCellHandler.Net.cs
│ │ │ ├── CommandCellHandler.cs
│ │ │ └── CommandCellHandler.iOS.cs
│ │ ├── CustomCell/
│ │ │ ├── CustomCellHandler.Android.cs
│ │ │ ├── CustomCellHandler.Net.cs
│ │ │ ├── CustomCellHandler.cs
│ │ │ └── CustomCellHandler.iOS.cs
│ │ ├── DatePickerCell/
│ │ │ ├── DatePickerCellHandler.Android.cs
│ │ │ ├── DatePickerCellHandler.Net.cs
│ │ │ ├── DatePickerCellHandler.cs
│ │ │ └── DatePickerCellHandler.iOS.cs
│ │ ├── EntryCell/
│ │ │ ├── EntryCellHandler.Android.cs
│ │ │ ├── EntryCellHandler.Net.cs
│ │ │ ├── EntryCellHandler.cs
│ │ │ └── EntryCellHandler.iOS.cs
│ │ ├── EntryCellBase/
│ │ │ ├── EntryCellBaseHandler.Android.cs
│ │ │ ├── EntryCellBaseHandler.Net.cs
│ │ │ ├── EntryCellBaseHandler.cs
│ │ │ └── EntryCellBaseHandler.iOS.cs
│ │ ├── LabelCell/
│ │ │ ├── LabelCellHandler.Android.cs
│ │ │ ├── LabelCellHandler.Net.cs
│ │ │ ├── LabelCellHandler.cs
│ │ │ └── LabelCellHandler.iOS.cs
│ │ ├── LabelCellBase/
│ │ │ ├── LabelCellBaseHandler.Android.cs
│ │ │ ├── LabelCellBaseHandler.Net.cs
│ │ │ ├── LabelCellBaseHandler.cs
│ │ │ └── LabelCellBaseHandler.iOS.cs
│ │ ├── NumberPickerCell/
│ │ │ ├── NumberPickerCellHandler.Android.cs
│ │ │ ├── NumberPickerCellHandler.Net.cs
│ │ │ ├── NumberPickerCellHandler.cs
│ │ │ └── NumberPickerCellHandler.iOS.cs
│ │ ├── RadioCell/
│ │ │ ├── RadioCellHandler.Android.cs
│ │ │ ├── RadioCellHandler.Net.cs
│ │ │ ├── RadioCellHandler.cs
│ │ │ └── RadioCellHandler.iOS.cs
│ │ ├── SettingsViewHandler.Android.cs
│ │ ├── SettingsViewHandler.Net.cs
│ │ ├── SettingsViewHandler.cs
│ │ ├── SettingsViewHandler.iOS.cs
│ │ ├── SimpleCheckCell/
│ │ │ ├── SimpleCheckCellHandler.Android.cs
│ │ │ ├── SimpleCheckCellHandler.Net.cs
│ │ │ ├── SimpleCheckCellHandler.cs
│ │ │ └── SimpleCheckCellHandler.iOS.cs
│ │ ├── SwitchCell/
│ │ │ ├── SwitchCellHandler.Android.cs
│ │ │ ├── SwitchCellHandler.Net.cs
│ │ │ ├── SwitchCellHandler.cs
│ │ │ └── SwitchCellHandler.iOS.cs
│ │ ├── Template/
│ │ │ ├── CellHandler.Android.cs
│ │ │ ├── CellHandler.cs
│ │ │ └── CellHandler.iOS.cs
│ │ ├── TextPickerCell/
│ │ │ ├── TextPickerCellHandler.Android.cs
│ │ │ ├── TextPickerCellHandler.Net.cs
│ │ │ ├── TextPickerCellHandler.cs
│ │ │ └── TextPickerCellHandler.iOS.cs
│ │ └── TimePickerCell/
│ │ ├── TimePickerCellHandler.Android.cs
│ │ ├── TimePickerCellHandler.Net.cs
│ │ ├── TimePickerCellHandler.cs
│ │ └── TimePickerCellHandler.iOS.cs
│ ├── MauiAppBuilderExtension.cs
│ ├── MauiHandlerExtension.cs
│ ├── Native/
│ │ ├── Android/
│ │ │ ├── AiRecyclerView.cs
│ │ │ ├── Cells/
│ │ │ │ ├── ButtonCellView.cs
│ │ │ │ ├── CellBaseView.cs
│ │ │ │ ├── CheckboxCellView.cs
│ │ │ │ ├── CommandCellView.cs
│ │ │ │ ├── CustomCellView.cs
│ │ │ │ ├── DatePickerCellView.cs
│ │ │ │ ├── EntryCellView.cs
│ │ │ │ ├── LabelCellView.cs
│ │ │ │ ├── NumberPickerCellView.cs
│ │ │ │ ├── RadioCellView.cs
│ │ │ │ ├── SimpleCheck.cs
│ │ │ │ ├── SimpleCheckCellView.cs
│ │ │ │ ├── SwitchCellView.cs
│ │ │ │ ├── TextPickerCellView.cs
│ │ │ │ └── TimePickerCellView.cs
│ │ │ ├── DrawableUtility.cs
│ │ │ ├── Extensions/
│ │ │ │ ├── LayoutAlignmentExtensions.cs
│ │ │ │ ├── TextAlignmentExtensions.cs
│ │ │ │ ├── ViewExtension.cs
│ │ │ │ └── ViewHandlerExtension.cs
│ │ │ ├── FormsViewContainer.cs
│ │ │ ├── HeaderFooterContainer.cs
│ │ │ ├── ModelProxy.cs
│ │ │ ├── SVItemdecoration.cs
│ │ │ ├── SettingsViewLayoutManager.cs
│ │ │ ├── SettingsViewRecyclerAdapter.cs
│ │ │ └── ViewHolders.cs
│ │ └── iOS/
│ │ ├── AiTableView.cs
│ │ ├── Cells/
│ │ │ ├── ButtonCellView.cs
│ │ │ ├── CellBaseView.cs
│ │ │ ├── CheckboxCellView.cs
│ │ │ ├── CommandCellView.cs
│ │ │ ├── CustomCellContent.cs
│ │ │ ├── CustomCellView.cs
│ │ │ ├── DatePickerCellView.cs
│ │ │ ├── EntryCellView.cs
│ │ │ ├── LabelCellView.cs
│ │ │ ├── NumberPickerCellView.cs
│ │ │ ├── NumberPickerSource.cs
│ │ │ ├── RadioCellView.cs
│ │ │ ├── SimpleCheckCellView.cs
│ │ │ ├── SwitchCellView.cs
│ │ │ ├── TextPickerCellView.cs
│ │ │ ├── TextPickerSource.cs
│ │ │ └── TimePickerCellView.cs
│ │ ├── CustomHeaderFooterView.cs
│ │ ├── Extensions/
│ │ │ ├── DisposeHelpers.cs
│ │ │ ├── NSObjectExtension.cs
│ │ │ ├── StackViewAlignmentExtensions.cs
│ │ │ ├── TextAlignmentExtensions.cs
│ │ │ └── ThicknessExtensions.cs
│ │ ├── KeyboardInsetTracker.cs
│ │ ├── PaddingLabel.cs
│ │ ├── SettingsTableSource.cs
│ │ ├── TextFooterView.cs
│ │ └── TextHeaderView.cs
│ ├── NaturalComparer.cs
│ ├── Pages/
│ │ ├── PickerPage.xaml
│ │ └── PickerPage.xaml.cs
│ ├── Platforms/
│ │ └── Android/
│ │ └── Resources/
│ │ ├── drawable/
│ │ │ ├── divider.xml
│ │ │ └── ic_navigate_next.xml
│ │ ├── layout/
│ │ │ ├── cellbaseview.axml
│ │ │ ├── contentcell.axml
│ │ │ ├── footercell.axml
│ │ │ └── headercell.axml
│ │ └── values/
│ │ ├── Strings.xml
│ │ ├── attrs.xml
│ │ └── styles.xml
│ ├── Section.cs
│ ├── SectionBase.cs
│ ├── SettingsModel.cs
│ ├── SettingsRoot.cs
│ ├── SettingsView.DefineProperites.cs
│ ├── SettingsView.cs
│ ├── SettingsView.csproj
│ ├── SettingsViewConfiguration.cs
│ └── SizeTypeConverter.cs
└── global.json
================================================
FILE CONTENTS
================================================
================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms
github: [muak]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''
---
---
name: Bug report
about: Create a report to help us improve
---
### Description
### Steps to Reproduce
1.
2.
3.
### Expected Behavior
### Actual Behavior
### Platforms
- [ ] Android
- [ ] iOS
### Basic Information
- AiForms.SettingsView x.x.x
- Xamarin.Forms x.x.x
- Android Support Library Version: <!-- if applicable -->
- Affected Devices:
### Screenshots
<!-- If the issue is a visual issue, please include screenshots showing the problem if possible -->
### Reproduction Link
<!-- Please upload or provide a link to a reproduction case -->
### Workaround
<!-- Did you find any workaround for this issue? This can unblock other people while waiting for this issue to be resolved -->
================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.md
================================================
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''
---
---
name: Feature request
about: Suggest an idea for this project
title: "[Enhancement] YOUR IDEA!"
---
## Summary
Please provide a brief summary of your proposal. Two to three sentences is best here.
## API Changes
Include a list of all API changes, additions, subtractions as would be required by your proposal. These APIs should be considered placeholders, so the naming is not as important as getting the concepts correct. If possible you should include some "example" code of usage of your new API.
e.g.
In order to facilitate the new Shiny Button api, a bool is added to the Button class. This is done as a bool because it is simpler to data bind and other reasons...
var button = new Button ();
button.MakeShiny = true; // new API
The MakeShiny API works even if the button is already visible.
## Intended Use Case
Provide a detailed example of where your proposal would be used and for what purpose.
================================================
FILE: .gitignore
================================================
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
.vs/
.vscode/
mono_crash.*
.idea/
# User-specific files
*.suo
*.user
*.sln.docstates
*.userprefs
# ignore Xamarin.Android Resource.Designer.cs files
**/*.Droid/**/[Rr]esource.[Dd]esigner.cs
**/*.Android/**/[Rr]esource.[Dd]esigner.cs
**/Android/**/[Rr]esource.[Dd]esigner.cs
# Xamarin Components
Components/
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
x64/
build/
bld/
[Bb]in/
[Oo]bj/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
#NUNIT
*.VisualState.xml
TestResult.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
*_i.c
*_p.c
*_i.h
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opensdf
*.sdf
*.cachefile
# Visual Studio profiler
*.psess
*.vsp
*.vspx
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# JustCode is a .NET coding addin-in
.JustCode
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# NCrunch
*.ncrunch*
_NCrunch_*
.*crunch*.local.xml
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# NuGet Packages Directory
packages/
## TODO: If the tool you use requires repositories.config uncomment the next line
#!packages/repositories.config
# Enable "build/" folder in the NuGet Packages folder since NuGet packages use it for MSBuild targets
# This line needs to be after the ignore of the build folder (and the packages folder if the line above has been uncommented)
!packages/build/
# Windows Azure Build Output
csx/
*.build.csdef
# Windows Store app package directory
AppPackages/
# Others
sql/
*.Cache
ClientBin/
[Ss]tyle[Cc]op.*
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.pfx
*.publishsettings
node_modules/
.DS_Store
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file to a newer
# Visual Studio version. Backup files are not needed, because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
# SQL Server files
*.mdf
*.ldf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
# Microsoft Fakes
FakesAssemblies/
project.lock.json
================================================
FILE: AiForms.Maui.SettingsView.slnx
================================================
<Solution>
<Folder Name="/Solution Items/" />
<Project Path="Sample/Sample.csproj" />
<Project Path="SettingsView/SettingsView.csproj" />
</Solution>
================================================
FILE: CONTRIBUTING-ja.md
================================================
# How to contribute
[English contribution guideline is here!](CONTRIBUTING.md)
我々は皆さんの AiForms.SettingsView へ貢献を歓迎します。
我々は、皆さんによる貢献を出来るだけ簡単にできるようにしたいと考えています。
その為に、貢献しようとする人は以下の方針に従うよう、お願いします。
## Getting Started
* AiForms.SettingsView に貢献する為には [GitHub アカウント](https://github.com/signup/free) が必要です。
* 問題や機能要望には Issue を作ってください(まだ Issue が作られていない場合)。
* Issue や Pull request を送るのに、事前の連絡は必要ありません。
* バグを issue で報告する場合、バグを再現する為の説明、エラーの情報、環境を書いてください。
* Issue のタイトルと本文はできるだけ英語で書いてください(不可能な場合は日本語でも OK です)。
* [Issue テンプレート](https://github.com/muak/AiForms.SettingsView/issues/new/choose) が用意されているので、必要な箇所を切り取って使用してください。
* GitHub でリポジトリの fork を作ってください。
* ローカルにクローンしたあと、 ``git config user.name yourname`` と ``git config user.email your@ema.il`` を設定してください。特に、``user.email`` は必ず GitHub のアカウントで使用している e-mail アドレスを設定してください。
## Making Changes
* コードやドキュメントを AiForms.SettingsView に貢献するにはベースとなるブランチから、トピック・ブランチを作ってください。
* 通常、これ(ベースとなるブランチ)は development ブランチです。
* development ブランチから、トピック・ブランチを作るには: `git branch
issue_999 development` してから `git
checkout issue_999`で新しいブランチに切り替えます。development ブランチ上で作業するのを避けてください。
* commit は合理的(ロジック単位)に分けてください。また目的と関係のないコードの変更は含めないでください(コードフォーマットの変更、不要コードの削除など)。
* commit メッセージが正しいフォーマットにあることを確認してください。commit メッセージはできるだけ英語でお願いします。
````
必須なコミット情報はここに(できるだけ英語で)。
上にある最初の列はパッチ/コミットの概要を説明します。
この本文はパッチが無い状態のプログラムの行動、なんでこの行動は問題なのか、どうやってパッチが問題を解決するのかを説明します。
````
* 変更の為にテストが必要ならそのテストが追加されているよう確認してください。
## Coding Style
我々は [.NET Foundation](https://github.com/dotnet/corefx/blob/master/Documentation/coding-guidelines/coding-style.md) のコーディングスタイルを使用します。ただし、1点違いがあります。
> We use Allman style braces, where each brace begins on a new line. ~~A single line statement block can go without braces~~
我々は、**常に** 中括弧を使用します、1行の ``if/for/while/etc`` でも ``{ }`` を省略しないでください。
**例:**
```csharp
// 👎🏽 DO NOT USE
if (source == null)
throw new ArgumentNullException("source");
// 👍🏽 GOOD
if (source == null)
{
throw new ArgumentNullException("source");
}
```
コード中には、コメントも含めて日本語は使わないでください。
## Submitting Changes
* 自分の fork で、変更をトピック・ブランチに push してください。
* AiForms.SettingsView のリポジトリに pull request を投稿してください。
pull request は、以下のように作成してください。
* タイトルは変更の要約を分かりやすく書いてください。
* 本文には、関連する issue の番号を本文に含めてください。( ref #199 など)
* 本文には、その変更が確認できるコードの場所を明記してください。通常これは [サンプルプログラム](https://github.com/muak/AiForms.SettingsView/tree/development/Sample) に追加することを推奨します。
* 機能の追加・修正の場合は[ReadMe-ja.md](https://github.com/muak/AiForms.SettingsView/blob/development/README-ja.md)の対応する箇所に加筆・修正してください。
* まだ作業中である場合、タイトルの先頭に [WIP] を付けてください。マージ可能になったら、[WIP] を除去し、コメントでお知らせください。
* 作業中に development ブランチが変更された場合は、コンフリクトを解消してから [WIP] を除去してください。
* その作業を予約する意味で、まず [WIP] の付いた pull request を投稿することを許可します。ただし、長い間活動が見られない場合は、クローズされる場合があります。
# Thanks
このドキュメントは、[MMP/CONTRIBUTING.md · sn0w75/MMP](https://github.com/sn0w75/MMP/blob/master/CONTRIBUTING.md) と [CONTRIBUTING.md · amay077/
Xamarin.Forms.GoogleMaps](https://github.com/amay077/Xamarin.Forms.GoogleMaps/blob/master/CONTRIBUTING.md) をベースに作成しました。
================================================
FILE: CONTRIBUTING.md
================================================
# How to contribute
[日本語のコントリビューションガイドはこちら!](CONTRIBUTING-ja.md)
Third-party contributions are essential for the future development of AiForms.SettingsView.
We would like to keep it as easy as possible to contribute changes that get things working
on your environment. There are some guidelines that we need contributors to follow
so that we can keep on top of things.
## Getting Started
* Make sure you have a [GitHub account](https://github.com/signup/free).
* Create an Issue for your problem, assuming one does not already exist.
* Clearly describe the issue including steps to reproduce, stacktrace and environments when it is a bug.
* We have an [issue template](https://github.com/muak/AiForms.SettingsView/issues/new/choose), you can use some part of it.
* Fork the repository on GitHub.
* After cloning your repogitory to local, you should set ``git config user.name`` and `` git config user.email your@ema.il`` . Especially you **MUST** set ``user.email`` as same as your GitHub account's e-mail.
## Making Changes
* Create a topic branch from where you want to base your work.
* It would be usually from the development branch.
* To quickly create a topic branch based on development; `git branch
issue_999 development` then checkout the new branch with `git
checkout issue_999`. Please avoid working directly on the
`development` branch.
* Make commits of logical units. **Do not contain unrelated file changes(e.g. code formatting).**
* Check for unnecessary whitespace with `git diff --check` before committing.
* Make sure your commit messages are in the proper format.
````
Essential commit summary here.
The body paragraph describes the behavior without the patch,
why this is a problem, and how the patch fixes the problem when applied.
````
* Make sure you have added the necessary tests for your changes.
* Run _all_ the tests to assure nothing else was accidentally broken.
### Coding Style
We follow the style used by the [.NET Foundation](https://github.com/dotnet/corefx/blob/master/Documentation/coding-guidelines/coding-style.md), with one primary exception:
> We use Allman style braces, where each brace begins on a new line. ~~A single line statement block can go without braces~~
We **always** need braces, you can not go without braces.
**Examples:**
```csharp
// 👎🏽 DO NOT WRITE
if (source == null)
throw new ArgumentNullException("source");
// 👍🏽 GOOD
if (source == null)
{
throw new ArgumentNullException("source");
}
```
## Submitting Changes
* Push your changes to a topic branch in your fork of the repository.
* Submit a pull request to the AiForms.SettingsView repository.
Make pull request guide line
* Write a summary of the changes in easy-to-understand manner for the title.
* Show some usage or test code for your changes. We storongly recommend to add usage of new feature to the [sample apps](https://github.com/muak/AiForms.SettingsView/tree/development/Sample).
* Reflect the changes on [ReadMe.md](https://github.com/muak/AiForms.SettingsView/blob/development/README.md).
* Include related issue number for the contents. (e.g. ref #199)
* If your changes are work in progress, the title should start with [WIP]. If you worked out, delete the [WIP] and please let us know.
* If we changed the development before you completed the work, you should resolve conflicts.
* We accept your [WIP] pull request first, which means issue reservation. But if you became no longer active, we will close it.
# Thanks
This guide is based on [MMP/CONTRIBUTING.en.md · sn0w75/MMP](https://github.com/sn0w75/MMP/blob/master/CONTRIBUTING.en.md) and [CONTRIBUTING.md · amay077/
Xamarin.Forms.GoogleMaps](https://github.com/amay077/Xamarin.Forms.GoogleMaps/blob/master/CONTRIBUTING.md).
================================================
FILE: LICENSE.txt
================================================
MIT License
Copyright (c) 2022 kamu
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
================================================
FILE: README-ja.md
================================================
# AiForms.SettingsView for .NET MAUI
SettingViewは.NET MAUIで使用できる設定に特化した柔軟なTableViewです。
AndroidとiOSに対応しています。
**現在プレビュー版です。動作は安定しませんので調査・検証用としてお使いください。**

## SettingsViewでできること(標準のTableViewとの違い)
### 全般
* Separatorの色の設定
* 選択された時の色の指定
* リストの先頭・最後へのスクロール
### セクション
* セクションごとの表示・非表示の設定
* セクションのフッターの設定
* ヘッダーとフッターの様々な設定
* ヘッダーとフッターにFormsのViewを設定
* セクション内にDataTemplateおよびDataTemplateSelectorを適用
* セクション内でドラッグドラッグによる並べ替え
### Cells
* すべてのセルの外観などをSettingsViewで一括で指定
* 個別のセルの設定(個別の設定は全体の設定より優先されます)
* Cell右上にヒントテキストの設定
* 全てのセルでのアイコン設定、それらすべてにメモリキャッシュを適用
* アイコンの角丸設定
* 様々な定義済みCellの使用
* Xamarin.FormsのViewCell、それ以外の定義済みCellの使用
<img src="https://github.com/muak/AiForms.SettingsView/blob/f82cc9ef2a6db043a1278c6f8349e1bde805a6d1/images/iOS_SS.png" height="1200" /> <img src="https://github.com/muak/AiForms.SettingsView/blob/f82cc9ef2a6db043a1278c6f8349e1bde805a6d1/images/AndroidSS.png" height="1200" />
### デモ動画
[https://youtu.be/FTMOqNILxBE](https://youtu.be/FTMOqNILxBE)
## 最小デバイス・バージョン等
iOS13
Android8.0
## インストール
[https://www.nuget.org/packages/AiForms.Maui.SettingsView/](https://www.nuget.org/packages/AiForms.Maui.SettingsView/)
```bash
Install-Package AiForms.Maui.SettingsView
```
```cs
public static MauiApp CreateMauiApp()
{
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.ConfigureMauiHandlers(handlers =>
{
handlers.AddSettingsViewHandler(); // write this
});
...
}
```
## Xamlでの使用方法
```xml
<ContentPage
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:sv="clr-namespace:AiForms.Settings;assembly=SettingsView"
x:Class="Sample.Views.SettingsViewPage">
<sv:SettingsView HasUnevenRows="true">
<sv:Section Title="Header1" FooterText="Footer1">
<sv:CommandCell IconSource="icon.png" IconSize="60,60" IconRadius="30"
Title="Xam Xamarin" Description="hoge@fuga.com"
Command="{Binding ToProfileCommand}" CommandParameter="{Binding Parameter}"
KeepSelectedUntilBack="true"
/>
<sv:ButtonCell Title="Toggle Section" TitleColor="{StaticResource TitleTextColor}"
TitleAlignment="Center" Command="{Binding SectionToggleCommand}" />
<sv:LabelCell Title="Label" ValueText="value" />
<sv:SwitchCell Title="Switch" On="true"
Description="This is description." />
<sv:CheckboxCell Title="Checkbox" Checked="true" />
</sv:Section>
<sv:Section Title="Header2" FooterText="Footer2" IsVisible="{Binding SctionIsVisible}">
<sv:PickerCell Title="Favorites" ItemsSource="{Binding ItemsSource}" DisplayMember="Name" MaxSelectedNumber="3"
SelectedItems="{Binding SelectedItems}" KeepSelectedUntilBack="true" PageTitle="select 3 items" />
<sv:NumberPickerCell Title="NumberPicker" Min="0" Max="99" Number="15" PickerTitle="Select number" />
<sv:TimePickerCell Title="TimePicker" Format="HH:mm" Time="15:30" PickerTitle="Select time" />
<sv:DatePickerCell Title="DatePicker" Format="yyyy/MM/dd (ddd)" Date="2017/11/11" MinimumDate="2015/1/1" MaximumDate="2018/12/15" TodayText="Today's date"/>
<sv:EntryCell Title="EntryCell" ValueText="{Binding InputText.Value}" Placeholder="Input text" Keyboard="Email" TextAlignment="End" HintText="{Binding InputError.Value}" />
</sv:Section>
</sv:SettingsView>
</ContentPage>
```
SettingsViewのプロパティ設定はApp.xamlに記述した方が良いかもしれません。
```xml
<Application xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:sv="clr-namespace:AiForms.Settings;assembly=SettingsView"
x:Class="Sample.App">
<Application.Resources>
<ResourceDictionary>
<Color x:Key="AccentColor">#FFBF00</Color>
<Color x:Key="DisabledColor">#E6DAB9</Color>
<Color x:Key="TitleTextColor">#CC9900</Color>
<Color x:Key="PaleBackColorPrimary">#F2EFE6</Color>
<Color x:Key="PaleBackColorSecondary">#F2EDDA</Color>
<Color x:Key="DeepTextColor">#555555</Color>
<Color x:Key="NormalTextColor">#666666</Color>
<Color x:Key="PaleTextColor">#999999</Color>
<x:Double x:Key="BaseFontSize">12</x:Double>
<x:Double x:Key="BaseFontSize+">14</x:Double>
<x:Double x:Key="BaseFontSize++">17</x:Double>
<x:Double x:Key="BaseFontSize-">11</x:Double>
<Style TargetType="sv:SettingsView">
<Setter Property="SeparatorColor" Value="{StaticResource DisabledColor}" />
<Setter Property="BackgroundColor" Value="{StaticResource PaleBackColorPrimary}" />
<Setter Property="HeaderBackgroundColor" Value="{StaticResource PaleBackColorPrimary}" />
<Setter Property="CellBackgroundColor" Value="{StaticResource AppBackground}" />
<Setter Property="CellTitleColor" Value="{StaticResource DeepTextColor}" />
<Setter Property="CellValueTextColor" Value="{StaticResource NormalTextColor}" />
<Setter Property="CellTitleFontSize" Value="{StaticResource BaseFontSize++}" />
<Setter Property="CellValueTextFontSize" Value="{StaticResource BaseFontSize}" />
<Setter Property="CellDescriptionColor" Value="{StaticResource NormalTextColor}" />
<Setter Property="CellDescriptionFontSize" Value="{StaticResource BaseFontSize-}" />
<Setter Property="CellAccentColor" Value="{StaticResource AccentColor}" />
<Setter Property="SelectedColor" Value="#50FFBF00" />
<Setter Property="HeaderTextColor" Value="{StaticResource TitleTextColor}" />
<Setter Property="FooterFontSize" Value="{StaticResource BaseFontSize-}" />
<Setter Property="FooterTextColor" Value="{StaticResource PaleTextColor}" />
</Style>
</ResourceDictionary>
</Application.Resources>
</Application>
```
こんな感じに書くことでアプリ内の全てのSettingsViewを同じ設定にすることができます。
## SettingsViewのプロパティ
* BackgroundColor
* View全体と領域外の背景色。ヘッダーやフッターの背景色も含みます。(Androidの場合はCellの背景色も)
* SeparatorColor
* セパレータの線の色
* SelectedColor
* 行(セル)を選択した時の背景色(AndroidはRipple色も含む)
> AndroidのRipple効果はセルの背景色が設定されていない(透明の)場合は発動しません。
* HeaderPadding
* HeaderTextColor
* HeaderFontSize
* HeaderFontFamily
* HeaderFontAttributes
* HeaderTextVerticalAlign
> HeaderHeightを設定した場合のみ有効です。
* HeaderBackgroundColor
* HeaderHeight
* ヘッダーに関する設定
* FooterTextColor
* FooterFontSize
* FooterFontFamily
* FooterFontAttributes
* FooterBackgroundColor
* FooterPadding
* フッターに関する設定
* RowHeight
* HasUnevenRowがfalseの時は、全行の高さ
* それ以外は最小の行の高さ
* HasUnevenRows
* 行の高さを固定にするかどうか。デフォルトはfalse。true推奨。
* CellTitleColor
* CellTitleFontSize
* CellTitleFontFamily
* CellTitleFontAttributes
* CellValueTextColor
* CellValueTextFontSize
* CellValueTextFontFamily
* CellValueTextFontAttributes
* CellDescriptionColor
* CellDescriptionFontSize
* CellDescriptionFontFamily
* CellDescriptionFontAttributes
* CellBackgroundColor
* CellIconSize
* CellIconRadius
* CellAccentColor
* CellHintTextColor
* CellHintFontSize
* CellHintFontFamily
* CellHintFontAttributes
* 一括セル設定。どこがどのパーツかは後述のLayoutを参照。
* UseDescriptionAsValue (Androidのみ有効)
* Description項目をValue項目として使用するかどうか。
* (一般的なAndroidアプリにありがちな設定値を下に書くレイアウトにするかどうか)
* デフォルトはfalse(DescriptionとValueは個別に使う)
* ShowSectionTopBottomBorder (Androidのみ有効)
* 行の境界線をセクションの上と下にも表示するかどうか
* (一般的なAndroidアプリでありがちな上と下は表示しないようにしないかどうか)
* デフォルトはtrue(表示する)
* ShowArrowIndicatorForAndroid
* CommandCell や PickerCell で 右端の矢印アイコンを Android でも表示するかどうか
* デフォルトは false (表示しない)
* ScrollToTop
* ScrollToBottom
* このプロパティにtrueをセットすると先頭または末尾までスクロールします。
* スクロール完了後は自動でfalseがセットされます。
* VisibleContentHeight
* 表示されているコンテンツの高さです。この値を使って SettingsView 自体の高さを表示されているセルの合計の高さに合わせることができます。
* ItemsSource
* ItemTemplate
* SettingsView全体のDataTemplateを使用できます。SectionのDataTemplateと組み合わせることで単純な構造のセルを短いコードで実現できます。
* TemplateStartIndex
* Templateの挿入を開始するインデックスを指定。デフォルトは0で最初からTemplateを適用します。1以上の値を指定すると、その位置からTemplateが挿入されるようになり、XAML等で挿入したデータはそのままの状態で残ります。任意の位置から繰り返しのセクションを設置した場合などに利用できます。
### SettingsView の高さを内容の高さに合わせるには
SettingsView の内容のセルの合計の高さが、親のViewよりも低い場合は、次のように HeightRequest と VisibleContentHeight を使って、自身の高さを内容の高さに合わせることができます。
```xml
<sv:SettingsView x:Name="settings" HeightRequest="{Binding VisibleContentHeight,Source={x:Reference settings}}">
</sv:SettingsView>
```
### SetttingsView自身のItemsSourceとItemTemplateの使用例
```csharp
public class SomeViewModel
{
public List<MenuSection> ItemsSource {get;set;}
public SomeViewModel()
{
ItemsSource = new List<MenuSection>{
new new MenuSection("Select number",3){
new MenuItem{Title = "3",Value=3},
new MenuItem{Title = "4",Value=4},
},
new MenuSection("Select mode",1){
new MenuItem{Title = "A",Value = 1},
new MenuItem{Title = "B",Value = 2}
}
}
}
}
public class MenuItem
{
public string Title { get; set; }
public int Value { get; set; }
}
public class MenuSection:List<MenuItem>
{
public string SectionTitle { get; set; }
public bool Selected { get;set; } // must implement INotifyPropertyChanged by some way
public MenuSection(string title,int initalSelectedValue)
{
SectionTitle = title;
}
}
```
```xml
<sv:SettingsView x:Name="Settings" ItemsSource="{Binding ItemsSource}">
<sv:SettingsView.ItemTemplate>
<DataTemplate>
<sv:Section Title="{Binding SectionTitle}" ItemsSource="{Binding}" sv:RadioCell.SelectedValue="{Binding Selected}">
<sv:Section.ItemTemplate>
<DataTemplate>
<sv:RadioCell Title="{Binding Title}" Value="{Binding Value}" />
</DataTemplate>
</sv:Section.ItemTemplate>
</sv:Section>
</DataTemplate>
</sv:SettingsView.ItemTemplate>
</sv:SettingsView>
```
## SettingsViewのメソッド
* ClearCache (static)
* 全ての画像メモリキャッシュをクリアする
## Section プロパティ
* Title
* セクションのヘッダー文字列。Xamarin.FormsのTableSectionと同じです。
* FooterText
* セクションのフッター文字列。
* IsVisible
* セクションを表示するかどうか。
* HeaderHeight
* セクションのヘッダーの個別の高さを指定します。
* SettingsViewのHeaderHeightよりも優先されます。
* ItemsSource
* DataTemplateのソースを指定します。
* ItemTemplate
* DataTemplateを指定します。
* TemplateStartIndex
* Templateの挿入を開始するインデックスを指定。デフォルトは0で最初からTemplateを適用します。1以上の値を指定すると、その位置からTemplateが挿入されるようになり、XAML等で挿入したデータはそのままの状態で残ります。任意の位置から繰り返しの Cell を設置した場合などに利用できます。
* UseDragSort
* セクション内のセルをDragDropで並べ替え可能にします。
* UseDragSortがtrueのセクション間でのみ移動が可能です。
* iOS11以降とそれ以外で外観が異なります。
* iOS10以下は三本線のアイコンを掴むと移動でき、iOS11はセル全体を長押しすると移動できるようになります。
* HeaderView
* FooterView
* Header または Footer に Forms の View を指定します。
> こちらを設定すると Title や FooterText も文字列は無効になります。
> HeaderView と FooterView を使用するとセルの高さは自動になります。
* FooterVisible
* FooterViewの表示・非表示を指定します。default true。
### Section HeaderView FooterView XAMLからの使用例
```xml
<sv:Section>
<sv:Section.HeaderView>
<StackLayout>
<Label Text="Header" />
</StackLayout>
</sv:Section.HeaderView>
<sv:Section.FooterView>
<Label Text="{Binding FooterText}" />
</sv:Section.FooterView>
</sv:Section>
```
### SectionのItemsSourceとItemTemplateの使用例
```csharp
public class SomeModel
{
// 動的なリストを使う場合はObservableCollectionを使った方が良いです。
public ObservableCollection<Option> Options {get;set;}
public void SomeMethod()
{
Options = new ObservableCollection(GetServerData());
}
}
public class Option
{
public string Name {get;set;}
public string Address {get;set;}
}
```
```xml
<sv:Section ItemsSource="{Binding Options}">
<sv:Section.ItemTemplate>
<DataTemplate>
<sv:LabelCell Title="{Binding Name}" Value="{Binding Address}" />
</DataTemplate>
</sv:Section.ItemTemplate>
</sv:Section>
```
## Cells
* [CellBase](#cellbase)
* [LabelCell](#labelcell)
* [CommandCell](#commandcell)
* [ButtonCell](#buttoncell)
* [SwitchCell](#switchcell)
* [CheckboxCell](#checkboxcell)
* [RadioCell](#radiocell)
* [NumberPickerCell](#numberpickercell)
* [TimePickerCell](#timepickercell)
* [DatePickerCell](#datepickercell)
* [TextPickerCell](#textpickercell)
* [PickerCell](#pickercell)
* [EntryCell](#entrycell)
* [CustomCell](#customcell)
## CellBase
### 基本セルのレイアウト

* Icon
* アイコンを使わない場合はこの領域は非表示になります。
* Description
* Descriptionを使わない場合はこの領域は非表示になります。
* Accessory
* CheckboxCellやSwitchCellで使用されます。それ以外は非表示です。
### プロパティ (全セル共通)
* Title
* Title部分の文字列
* TitleColor
* Title部分の文字色
* TitleFontSize
* TitleFontFamily
* TitleFontAttributes
* Title部分のフォント設定
* Description
* Description部分の文字列
* DescriptionColor
* Description部分の文字色
* DescriptionFontSize
* DescriptionFontFamily
* DescriptionFontAttributes
* Description部分のフォント設定
* HintText
* Hint部分の文字列(何らかの情報やバリデーションのエラーなど、右上に表示)
* HintTextColor
* Hint部分の文字色
* HintFontSize
* HintFontFamily
* HintFontAttributes
* Hint部分のフォント設定
* BackgroundColor
* セルの背景色
* IconSource
* アイコンのImageSource
* IconSize
* アイコンサイズ(幅,高さ指定)
* IconRadius
* アイコンの角丸半径。
* IsEnabled
* セルを有効にするかどうか。無効にした場合はセル全体の色が薄くなり操作を受け付けなくなります。
* IsVisible
* セルの表示・非表示
### メソッド
* Reload
* セルを強制的にリロードします。CustomCell等で動的に内容を変更した後などに使用します。
### SVGイメージを使用するには
SvgImageSourceのnugetパッケージをインストールすればSVG画像を使用できるようになります。
https://github.com/muak/SvgImageSource
https://www.nuget.org/packages/Xamarin.Forms.Svg/
```bash
Install-Package Xamain.Forms.Svg -pre
```
## LabelCell
テキスト表示専用のセルです。
### Properties
* ValueText
* 何らかの値を示す文字列(何に使っても問題ありません)
* ValueTextColor
* ValueText部分の文字色
* ValueTextFontSize
* ValueTextFontFamily
* ValueTextFontAttributes
* ValueText部分のフォント設定
* IgnoreUseDescriptionAsValue
* UseDescriptionAsValueの値がtrueだった場合、その設定を無視するかどうか。
* 例えば全体としてはValueは下に置きたいが、あるセルだけは通常のレイアウトで使用したい時などに使います。
## CommandCell
タップした時のコマンドを指定できるLabelCellです。
例えばページ遷移の時などに使用します。
### Properties
* Command
* CommandParameter
* KeepSelectedUntilBack
* タップして次のページに遷移した時、遷移先ページから戻ってくるまで選択状態をそのままにしておくかの設定
* trueの場合は選択状態をキープして、falseの場合は選択はすぐに解除されます。
* HideArrowIndicator
* 右端の矢印アイコンを非表示にします。
* 親のShowArrowIndicatorForAndroidがtrueの場合でもこちらのプロパティが優先されます。
他はLabelCellと同じです。
## ButtonCell
ボタンのようにタップするとコマンドを実行するだけのシンプルなセルです。
CommandCellとの違いは以下のとおりです。
* 右端にインジケーターが表示されない(iOS)
* ValueやDescriptioが使用不可
* ButtonCellは文字の水平位置を指定可能
### Properties
* TitleAlignment
* ボタンタイトルの水平位置属性
* Command
* CommandParameter
## SwitchCell
Switchを備えたLabelCellです。
### Properties
* On
* Switchのオンオフ。OnがtrueでOffがfalse。
* AccentColor
* Switchのアクセントカラー。背景色やつまみ部分の色などプラットフォームによって異なる。
## CheckboxCell
Checkboxを備えたLabelCellです。
### Properties
* Checked
* Checkのオンオフ。OnがtrueでOffがfalse。
* AccentColor
* Checkboxのアクセントカラー。(枠や背景色)
## RadioCell
セクション単位またはSettingsView全体で1つのアイテムを選択するCellです。PickerCellと違い選択項目を1階層目に配置する場合などに使用します。
### Properties
* Value
* セルに対応する選択候補値。
* AccentColor
* チェックマークの色。
### 添付プロパティ
* SelectedValue
* 現在の選択値。
* このプロパティをSectionに設定した場合は、そのSectionから1つだけ選択できるようになり、SettingsView自体に設定した場合は、View全体から1つだけ選択できるようになります。
> SectionとSettingsViewの両方に設定して動作させることはできません。両方に設定した場合はSection側が使用されます。
### XAML サンプル
#### セクション単位
```xml
<sv:SettingsView>
<sv:Section Title="Sound" sv:RadioCell.SelectedValue="{Binding SelectedItem}">
<sv:RadioCell Title="Sound1" Value="{Binding Items[0]}">
<sv:RadioCell Title="Sound2" Value="{Binding Items[1]}">
</sv:Section>
</sv:SettingsView>
```
#### コントロール全体
```xml
<sv:SettingsView sv:RadioCell.SelectedValue="{Binding GlobalSelectedItem}">
<sv:Section Title="Effect">
<sv:RadioCell Title="Sound1" Value="{Binding Items[0]}">
<sv:RadioCell Title="Sound2" Value="{Binding Items[1]}">
</sv:Section>
<sv:Section Title="Melody">
<sv:RadioCell Title="Melody1" Value="{Binding Items[2]}">
<sv:RadioCell Title="Melody2" Value="{Binding Items[3]}">
</sv:Section>
</sv:SettingsView>
```
## NumberPickerCell
セルタップ時にNumberPickerを呼び出すことができるLabelCellです。
### Properties
* Number
* 現在の数値(default two way binding)
* Min
* 最小値
* Max
* 最大値
* PickerTitle
* Pikerのタイトル文字列
* SelectedCommand
* 数値を選択した時に発火させるCommand。
* Unit
* 数値の単位文字列。
ValueTextは使用できません。
## TimePickerCell
セルタップ時にTimePickerを呼び出すことができるLabelCellです。
### Properties
* Time
* 現在選択中の時刻 (default two way binding)
* Format
* 時刻の書式 ("hh時mm分"など)
* PickerTitle
* Pikerのタイトル文字列
ValueTextは使用できません。
## DatePickerCell
セルタップ時にDatePickerを呼び出すことができるLabelCellです。
### Properties
* Date
* 現在選択中の日付 (default two way binding)
* MinimumDate
* MaximumDate
* Format
* 日付の書式 ("yyyy年MM月dd日 ddd曜日"など)
* TodayText
* 今日の日付を選択するためのボタンのタイトル文字列(iOSのみ)
* 空の場合はボタン自体が非表示になります。
* InitialDate
* Dateがnullだった場合に、ピッカーの初期値として設定される日付
* IsAndroidSpinnerStyle
* AndroidでカレンダーではなくスピナーUIを使用する場合にTrue
* AndroidButtonColor
* Androidのダイアログのボタン文字色
ValueTextは使用できません。
## TextPickerCell
セルタップ時にテキストを選択できるピッカーを呼び出すことができるLabelCellです。
NumberPickerCellをNumber以外に対応させたもので、データソースにListを設定できます。
### Properties
* Items
* IListを実装したデータソース。
* このプロパティには組み込みの型のList\<T>等が設定できます。(List\<string>, List\<int>,List\<double> など)
* ピッカーの表示テキストにはToString()の結果が使用されます。
* SelectedItem
* 選択したアイテム。 (two-way binding)
* SelectedCommand
* アイテム選択時に発火するコマンド。
* IsCircularPicker
* ピッカーのアイテムを循環させるかどうか。(Android のみ)
* デフォルト true
ValueTextは使用できません。
## PickerCell
セルタップ時に複数選択可能なピッカーを呼び出すことができるLabelCellです。
iOSではタップ時にページ遷移し遷移先ページでピッカーが表示されます。
Androidではタップ時にダイアログでピッカーが表示されます。
### Properties
* PageTitle
* ピッカーのタイトル文字列
* ItemsSource
* IEnumerableを実装したPickerのDataSource(List<T>やObservableCollection<T>など)
* nullを指定することはできません。
* DisplayMember
* Pickerに選択肢として表示させるメンバー名(プロパティ名)。省略時はToStringの値が使用されます。
* SubDisplayMember
* Pickerに表示させる二番目のメンバー名(プロパティ名)。指定するとセルは2行表示となり、1行目にDisplayMemberが、2行目にSubDisplayMemberが表示されるようになります。
* SelectionMode
* 複数選択か単一選択かのモードを Single / Multiple から選択。デフォルト Multiple。
* SelectedItem
* 単一選択の場合の選択されたアイテム。
* SelectedItems
* 複数選択の場合の選択されたアイテム。
* 選択したItemを保存するためのIList。ItemsSourceと同じ型のものを指定。
* 選択済み要素をあらかじめ設定する場合は、ItemsSourceの要素と同一インスタンスの要素にする必要があります。
* 指定する場合は必ずnullではなくインスタンス設定済みのものを指定する。
* SelectedItemsOrderKey
* 選択済みItemを文字列として表示する時のソートのキーとなるメンバー(プロパティ)名
* SelectedCommand
* 選択が完了した時に発火するコマンド
* iOSの場合はピッカーページから戻る時、Androidの場合はダイアログのOKをタップした時に発火します。
* MaxSelectedNumber
* 選択可能な最大数。
* 0指定で無制限、1指定で単一選択モード(ラジオボタン的なやつ)、2以上は制限付きの複数選択となります。
* KeepSelectedUntilBack
* タップして次のページに遷移した時またはダイアログ表示時、戻ってくるまで選択状態をそのままにしておくかの設定
* trueの場合は選択状態をキープして、falseの場合は選択はすぐに解除されます。
* AccentColor
* Pickerのチェックマークの色
* UseNaturalSort
* 並べ替え方法にNaturalSortを使うかどうか。デフォルト false。
* trueの場合、例えば通常 1,10,2,3,4 と並ぶところが 1,2,3,4,10 という並びになります。
* 日本語以外の言語で使用する場合、誤動作する可能性があります。
* UsePickToClose
* 選択がMaxSelectedNumberに達したら自動的にPickerを閉じるかどうかを指定します。
* UseAutoValueText
* 通常は選択アイテムが自動でValueTextに表示されますが、このプロパティにfalseを指定すると自動表示が解除され、ValueTextを普通に使うことができるようになります。
## EntryCell
文字入力用のCellです。
Xamarin.Forms.EntryCellとは別物です。
### Properties
* ValueText
* 入力文字列 (default two way binding)
* ValueTextColor
* 入力文字色
* ValueTextFontSize
* ValueTextFontFamily
* ValueTextFontAttributes
* 入力文字列のフォント設定
* MaxLength
* 最大文字列長
* Keyboard
* キーボードの種類
* Placeholder
* Placeholderの文字列
* PlaceholderColor
* Placeholderの文字色
* TextAlignment
* 入力文字列の水平位置属性
* AccentColor
* 入力欄の下線の色(Androidのみ)
* IsPassword
* パスワードなどのために入力文字を隠すかどうか。
* CompletedCommand
* エンターによる文字入力の確定、またはフォーカス移動による確定時に発火するコマンド。
### Methods
* SetFocus
* フォーカスを設定します。
## CustomCell
真ん中の Title / ValueText / Description の部分を Forms View で自由に設定できるCellです。View部分はXAMLで指定することができます。
基本的には CustomCell のサブクラスを作成し、それを利用する形で使用されることを想定しています。
## Properties
* ShowArrowIndicator
* セルの右端に矢印インジケータを表示するかどうか。
* true で iOS / Android に関わらず矢印を表示します。
* IsSelectable
* 行を選択可能かどうか。true で Commandが発火するようになります。
* IsMeasureOnce
* サイズ計算を1回だけ行うかどうか。デフォルト false。
* 高さが内容によって変わらないような場合にサイズ計算を省略することができます。
* UseFullSize
* true で自由領域を範囲を余白なしで目一杯使うようにします。
> 有効にした場合、アイコンの設定は無効になります。
* Command
* CommandParameter
* LongCommand
* 長押し時に発火するコマンド
* KeepSelectedUntilBack
* タップして次のページに遷移した時、遷移先ページから戻ってくるまで選択状態をそのままにしておくかの設定
* trueの場合は選択状態をキープして、falseの場合は選択はすぐに解除されます。
### CustomCellの使用例
* https://github.com/muak/AiForms.SettingsView/tree/development/Sample/Sample/Views/Cells
* https://github.com/muak/AiForms.SettingsView/blob/development/Sample/Sample/Views/CustomCellTest.xaml
## Contribution
私たちは、Xamarin.Forms.GoogleMaps への、あなたの貢献に大変感謝します。
開発に参加して頂ける方は、[コントリビューション ガイドライン](CONTRIBUTING-ja.md) を読んで下さい。
## Contributors
* [codegrue](https://github.com/codegrue)
* [cpraehaus](https://github.com/cpraehaus)
* [dylanberry](https://github.com/dylanberry)
* [RLittlesll](https://github.com/RLittlesII)
* [ChaseFlorell](https://github.com/ChaseFlorell)
* [OnTheFenceDevelopment](https://github.com/OnTheFenceDevelopment)
* [SiNeumann](https://github.com/SiNeumann)
* [akaegi](https://github.com/akaegi)
## 謝辞
NaturalSortの実装に以下のソースを利用させていただきました。
ありがとうございました。
* NaturalComparer
* https://qiita.com/tomochan154/items/1a3048f2cd9755233b4f
* https://github.com/tomochan154/toy-box/blob/master/NaturalComparer.cs
## 寄付
開発継続のため、寄付を募集しています。
寄付をいただけるとやる気が非常にアップしますので、どうかよろしくお願いいたします🙇
* [PayPalMe](https://paypal.me/kamusoftJP?locale.x=ja_JP)
## スポンサー
スポンサーも募集しています。
こちらはサブスクリプション制になります。
* [GitHub Sponsors](https://github.com/sponsors/muak)
## License
MIT Licensed.
Some code is taken from [.NET MAUI](https://github.com/dotnet/maui).
[Material design icons](https://github.com/google/material-design-icons) - [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
================================================
FILE: README.md
================================================
# AiForms.SettingsView for .NET MAUI
This is a flexible TableView specialized in settings for Android / iOS.
**This is currently a preview version. It is not stable, so please use it for research and verification purposes only.**
[Japanese](./README-ja.md)

## What SettingsView can do.
### General
* To set separator color.
* To set selected cell color.
* To scroll to screen top and bottom.
### Sections
* To set IsVisible each section.
* To set section a footer.
* To set various options of a header and a footer.
* To set Forms View to a section header and footer.
* To use DataTemplate and DataTemplateSelector in a section.
* To reorder items by drag and drop in a section.
### Cells
* To set options of all the cells as SettingsView options at once.
* To set indivisual cell options. (indivisual cell options is superior to SettingsView options.)
* To set a cell HintText.
* To use an icon cached in memory at all cells.
* To change corner radius of an icon.
* To use various defined cells.
* To use Xamarin.Forms.ViewCell and the others.
<img src="https://github.com/muak/AiForms.SettingsView/blob/f82cc9ef2a6db043a1278c6f8349e1bde805a6d1/images/iOS_SS.png" height="1200" /> <img src="https://github.com/muak/AiForms.SettingsView/blob/f82cc9ef2a6db043a1278c6f8349e1bde805a6d1/images/AndroidSS.png" height="1200" />
### Demo movie
[https://youtu.be/FTMOqNILxBE](https://youtu.be/FTMOqNILxBE)
## Minimum Device and Version etc
iOS:iPhone5s,iPod touch6,iOS9.3
Android:version 5.1.1 (only FormsAppcompatActivity) / API22
## Installation
[https://www.nuget.org/packages/AiForms.Maui.SettingsView/](https://www.nuget.org/packages/AiForms.Maui.SettingsView/)
```bash
Install-Package AiForms.Maui.SettingsView
```
```cs
public static MauiApp CreateMauiApp()
{
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.UseSettingsView() // write this
...
}
```
OR
```cs
public static MauiApp CreateMauiApp()
{
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.ConfigureMauiHandlers(handlers =>
{
handlers.AddSettingsViewHandler(); // write this
});
...
}
```
## Options
MAUI has a fatal flaw in that the DisconnectHandler of the control is not automatically called.
(https://github.com/dotnet/maui/issues/18366)
SettingsView has an option to call DisconnectHandler on PageUnload to clean up.
To enable this, do the following.
```cs
...
.UseSettingsView(true)
...
```
## How to write with xaml
```xml
<ContentPage
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:sv="clr-namespace:AiForms.Settings;assembly=SettingsView"
x:Class="Sample.Views.SettingsViewPage">
<sv:SettingsView HasUnevenRows="true">
<sv:Section Title="Header1" FooterText="Footer1">
<sv:CommandCell IconSource="icon.png" IconSize="60,60" IconRadius="30"
Title="Xam Xamarin" Description="hoge@fuga.com"
Command="{Binding ToProfileCommand}" CommandParameter="{Binding Parameter}"
KeepSelectedUntilBack="true"
/>
<sv:ButtonCell Title="Toggle Section" TitleColor="{StaticResource TitleTextColor}"
TitleAlignment="Center" Command="{Binding SectionToggleCommand}" />
<sv:LabelCell Title="Label" ValueText="value" />
<sv:SwitchCell Title="Switch" On="true"
Description="This is description." />
<sv:CheckboxCell Title="Checkbox" Checked="true" />
</sv:Section>
<sv:Section Title="Header2" FooterText="Footer2" IsVisible="{Binding SctionIsVisible}">
<sv:PickerCell Title="Favorites" ItemsSource="{Binding ItemsSource}" DisplayMember="Name" MaxSelectedNumber="3"
SelectedItems="{Binding SelectedItems}" KeepSelectedUntilBack="true" PageTitle="select 3 items" />
<sv:NumberPickerCell Title="NumberPicker" Min="0" Max="99" Number="15" PickerTitle="Select number" />
<sv:TimePickerCell Title="TimePicker" Format="HH:mm" Time="15:30" PickerTitle="Select time" />
<sv:DatePickerCell Title="DatePicker" Format="yyyy/MM/dd (ddd)" Date="2017/11/11" MinimumDate="2015/1/1" MaximumDate="2018/12/15" TodayText="Today's date"/>
<sv:EntryCell Title="EntryCell" ValueText="{Binding InputText.Value}" Placeholder="Input text" Keyboard="Email" TextAlignment="End" HintText="{Binding InputError.Value}" />
</sv:Section>
</sv:SettingsView>
</ContentPage>
```
SettingsView properties settings may as well be witten in App.xaml.
For example...
```xml
<Application xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:sv="clr-namespace:AiForms.Settings;assembly=SettingsView"
x:Class="Sample.App">
<Application.Resources>
<ResourceDictionary>
<Color x:Key="AccentColor">#FFBF00</Color>
<Color x:Key="DisabledColor">#E6DAB9</Color>
<Color x:Key="TitleTextColor">#CC9900</Color>
<Color x:Key="PaleBackColorPrimary">#F2EFE6</Color>
<Color x:Key="PaleBackColorSecondary">#F2EDDA</Color>
<Color x:Key="DeepTextColor">#555555</Color>
<Color x:Key="NormalTextColor">#666666</Color>
<Color x:Key="PaleTextColor">#999999</Color>
<x:Double x:Key="BaseFontSize">12</x:Double>
<x:Double x:Key="BaseFontSize+">14</x:Double>
<x:Double x:Key="BaseFontSize++">17</x:Double>
<x:Double x:Key="BaseFontSize-">11</x:Double>
<Style TargetType="sv:SettingsView">
<Setter Property="SeparatorColor" Value="{StaticResource DisabledColor}" />
<Setter Property="BackgroundColor" Value="{StaticResource PaleBackColorPrimary}" />
<Setter Property="HeaderBackgroundColor" Value="{StaticResource PaleBackColorPrimary}" />
<Setter Property="CellBackgroundColor" Value="{StaticResource AppBackground}" />
<Setter Property="CellTitleColor" Value="{StaticResource DeepTextColor}" />
<Setter Property="CellValueTextColor" Value="{StaticResource NormalTextColor}" />
<Setter Property="CellTitleFontSize" Value="{StaticResource BaseFontSize++}" />
<Setter Property="CellValueTextFontSize" Value="{StaticResource BaseFontSize}" />
<Setter Property="CellDescriptionColor" Value="{StaticResource NormalTextColor}" />
<Setter Property="CellDescriptionFontSize" Value="{StaticResource BaseFontSize-}" />
<Setter Property="CellAccentColor" Value="{StaticResource AccentColor}" />
<Setter Property="SelectedColor" Value="#50FFBF00" />
<Setter Property="HeaderTextColor" Value="{StaticResource TitleTextColor}" />
<Setter Property="FooterFontSize" Value="{StaticResource BaseFontSize-}" />
<Setter Property="FooterTextColor" Value="{StaticResource PaleTextColor}" />
</Style>
</ResourceDictionary>
</Application.Resources>
</Application>
```
Whereby any SettingsView in App will become the same property setttings.
## SettingsView Properties
* BackgroundColor
* A color of out of region and entire region. They contains header, footer and cell (in case android).
* SeparatorColor
* Row separator color.
* SelectedColor
* Backgraound color when row is selected.
> Note that cell's ripple effect is not worked on Android when the cell background color is not set.
* HeaderPadding
* HeaderTextColor
* HeaderFontSize
* HeaderFontFamily
* HeaderFontAttributes
* HeaderTextVerticalAlign
> Note that this property is enabled only when specifying HeaderHeight.
* HeaderBackgroundColor
* HeaderHeight
* They are section header options.
* FooterTextColor
* FooterFontSize
* FooterFontFamily
* FooterFontAttributes
* FooterBackgroundColor
* FooterPadding
* They are section footer options.
* RowHeight
* If HasUnevenRows is false, this value apply to each row height;
* Otherwise this value is used as minimum row height.
* HasUnevenRows
* Whether row height is fixed. Default false.(recomend true)
* CellTitleColor
* CellTitleFontSize
* CellTitleFontFamily
* CellTitleFontAttributes
* CellValueTextColor
* CellValueTextFontSize
* CellValueTextFontFamily
* CellValueTextFontAttributes
* CellDescriptionColor
* CellDescriptionFontSize
* CellDescriptionFontFamily
* CellDescriptionFontAttributes
* CellBackgroundColor
* CellIconSize
* CellIconRadius
* CellAccentColor
* CellHintTextColor
* CellHintFontSize
* CellHintFontFamily
* CellHintFontAttributes
* They are bulk cell options.
* UseDescriptionAsValue (for Android)
* Whether description field is used as value field. (like general android app)
* Default false
* ShowSectionTopBottomBorder (for Android)
* Whether a separator is shown at section top and bottom. (like general android app)
* Default true
* ShowArrowIndicatorForAndroid
* Whether a right arrow icon is shown at the right side in a CommandCel and PickerCell on Android.
* ScrollToTop
* ScrollToBottom
* When this property is set to true, the screen will be scrolled to first item position or last item position.
* If scrolling has complete, it will be set to false automatically.
* VisibleContentHeight
* The height of the visible content. This value allows SettingsView itself height to fit total cells height.
* ItemsSource
* ItemTemplate
* A DataTemplate for entire SettingsView can be used.
* TemplateStartIndex
* This is the index that starts inserting the template. The default value is 0. If a specified value is greater or equal than 1, the template is inserted from its position and the section inserted with XAML remains. You can insert the repeating data wherever you want to do.
### To fit SettingsView height to visible content
If SettingsView's total cells height is shorter than the parent view height, itself height can be fit total cells height as the following:
```xml
<sv:SettingsView x:Name="settings" HeightRequest="{Binding VisibleContentHeight,Source={x:Reference settings}}">
</sv:SettingsView>
```
### Sample of ItemsSource and ItemTemplate for a root
```csharp
public class SomeViewModel
{
public List<MenuSection> ItemsSource {get;set;}
public SomeViewModel()
{
ItemsSource = new List<MenuSection>{
new new MenuSection("Select number",3){
new MenuItem{Title = "3",Value=3},
new MenuItem{Title = "4",Value=4},
},
new MenuSection("Select mode",1){
new MenuItem{Title = "A",Value = 1},
new MenuItem{Title = "B",Value = 2}
}
}
}
}
public class MenuItem
{
public string Title { get; set; }
public int Value { get; set; }
}
public class MenuSection:List<MenuItem>
{
public string SectionTitle { get; set; }
public bool Selected { get;set; } // must implement INotifyPropertyChanged by some way
public MenuSection(string title,int initalSelectedValue)
{
SectionTitle = title;
}
}
```
```xml
<sv:SettingsView x:Name="Settings" ItemsSource="{Binding ItemsSource}">
<sv:SettingsView.ItemTemplate>
<DataTemplate>
<sv:Section Title="{Binding SectionTitle}" ItemsSource="{Binding}" sv:RadioCell.SelectedValue="{Binding Selected}">
<sv:Section.ItemTemplate>
<DataTemplate>
<sv:RadioCell Title="{Binding Title}" Value="{Binding Value}" />
</DataTemplate>
</sv:Section.ItemTemplate>
</sv:Section>
</DataTemplate>
</sv:SettingsView.ItemTemplate>
</sv:SettingsView>
```
## SettingsView Methods
* ClearCache (static)
* Clear all memory cache.
## Section Properties
* Title
* Section header text. The same as Xamarin.Forms.TableSection.
* FooterText
* Section footer text.
* IsVisible
* Whether the section is visibled.
* HeaderHeight
* Individual section header height.
* Superior to SettingsView HeaderHight.
* ItemsSource
* Specify the source of a DataTemplate.
* ItemTemplate
* Specify a DataTemplate.
* TemplateStartIndex
* This is the index that starts inserting the template. The default value is 0. If a specified value is greater or equal than 1, the template is inserted from its position and cells inserted with XAML remains. You can insert the repeating data wherever you want to do.
* UseDragSort
* Enable you to reorder cells in a section with drag and drop.
* Items can move in sections that UseDragSort Property is true.
* If iOS version is less than or equal to iOS10, the cells can be moved when grabbing the icon drawn three lines; Otherwise can be moved when doing long tap.
* HeaderView
* FooterView
* Set a Forms View to Header or Footer.
> Once these are set, Title or FooterText is disabled.
> If HeaderView or FooterView is used, the cell height turns auto size.
* FooterVisible
* Specify a FooterView visibility. Default true.
### Example for Section HeaderView FooterView with XAML
```xml
<sv:Section>
<sv:Section.HeaderView>
<StackLayout>
<Label Text="Header" />
</StackLayout>
</sv:Section.HeaderView>
<sv:Section.FooterView>
<Label Text="{Binding FooterText}" />
</sv:Section.FooterView>
</sv:Section>
```
### How to use an ItemsSource and an ItemTemplate for a Section
```csharp
public class SomeModel
{
// you should use a ObservableCollection if you use a dynamic list.
public ObservableCollection<Option> Options {get;set;}
public void SomeMethod()
{
Options = new ObservableCollection(GetServerData());
}
}
public class Option
{
public string Name {get;set;}
public string Address {get;set;}
}
```
```xml
<sv:Section ItemsSource="{Binding Options}">
<sv:Section.ItemTemplate>
<DataTemplate>
<sv:LabelCell Title="{Binding Name}" Value="{Binding Address}" />
</DataTemplate>
</sv:Section.ItemTemplate>
</sv:Section>
```
## Cells
* [CellBase](#cellbase)
* [LabelCell](#labelcell)
* [CommandCell](#commandcell)
* [ButtonCell](#buttoncell)
* [SwitchCell](#switchcell)
* [CheckboxCell](#checkboxcell)
* [RadioCell](#radiocell)
* [NumberPickerCell](#numberpickercell)
* [TimePickerCell](#timepickercell)
* [DatePickerCell](#datepickercell)
* [TextPickerCell](#textpickercell)
* [PickerCell](#pickercell)
* [EntryCell](#entrycell)
* [CustomCell](#customcell)
## CellBase
### Layout of cellbase

* Icon
* If not specify a imagesource, icon will be hidden.
* Description
* If not specify any text, description will be hidden.
* Accessory
* Be used by a CheckboxCell and a SwitchCell; Otherwise will be hidden.
### Properties (all cell types)
* Title
* Title text.
* TitleColor
* Title text color.
* TitleFontSize
* TitleFontFamily
* TitleFontAttributes
* Title text font size, family, attributes.
* Description
* Description text.
* DescriptionColor
* Description text color.
* DescriptionFontSize
* DescriptionFontSize
* DescriptionFontFamily
* Description text font size, family, attributes.
* HintText
* Hint text.(for some information, validation error and so on)
* HintTextColor
* Hint text color.
* HintFontSize
* HintFontFamily
* HintFontAttributes
* Hint text font size, family, attributes.
* BackgroundColor
* Cell background color.
* IconSource
* Icon image source. (any ImageSource object)
* IconSize
* Icon size. (width,height)
* IconRadius
* Icon corners radius.
* IsEnabled
* Whether a cell is enabled. If set to false, the entire cell color will turn translucent and the cell won't accept any operations.
* IsVisible
* Whether a cell is visible or not.
### Methods
* Reload
* Reload forcely the cell. This is used after dynamically changing the contents of a cell, such as Custom Cell.
### To use SVG image
You can use SVG image if SvgImageSource is installed.
https://github.com/muak/SvgImageSource
https://www.nuget.org/packages/Xamarin.Forms.Svg/
```bash
Install-Package Xamain.Forms.Svg -pre
```
## LabelCell
This is a cell showing read only text.
### Properties
* ValueText
* Value text.
* ValueTextColor
* Value text color.
* ValueTextFontSize
* ValueTextFontFamily
* ValueTextFontAttributes
* Value text font size, family, attributes.
* IgnoreUseDescriptionAsValue
* Whether ignore the setting that SettingsView property of UseDescriptionAsValue.
## CommandCell
This is a Labelcell invoked an action.
### Properties
* Command
* Invoked action.
* CommandParameter
* KeepSelectedUntilBack
* When moving next page, whether keep the cell selected until being back to the page.
* HideArrowIndicator
* Hide a right arrow icon on the right side.
* Even if ShowArrowIndicatorForAndroid is true, this property gives priority to.
The others are the same as LabelText.
## ButtonCell
This is a simple cell invoked an action like a button.
### Properties
* TitleAlignment
* Button title horizontal alignment.
* Command
* CommandParameter
This cell don't use Description property.
## SwitchCell
This is a LabelCell equipped a switch.
### Properties
* On
* Switch toggle on / off. On is true, Off is false.
* AccentColor
* Swich accent color. (background color and so on)
## CheckboxCell
This is a LabelCell equipped a checkbox.
### Properties
* Checked
* Check on / off. On is true, Off is false.
* AccentColor
* Checkbox accent color. (frame and background)
## RadioCell
This is the cell that can be selected just one item from in a Section or a SettingsView.
### Properties
* Value
* A value that can be selected.
* AccentColor
* Check mark color.
### Attached Bindable Property
* SelectedValue
* Current selected value.
* If this property is set to a section, the item can be selected just one from the section, and if set to SettingsView itself, the item can be selected just one from entire SettingsView.
> Note that this property can't be set to both entire and a section. If it is set to both, a section side is used.
### XAML Example
#### For a section
```xml
<sv:SettingsView>
<sv:Section Title="Sound" sv:RadioCell.SelectedValue="{Binding SelectedItem}">
<sv:RadioCell Title="Sound1" Value="{Binding Items[0]}">
<sv:RadioCell Title="Sound2" Value="{Binding Items[1]}">
</sv:Section>
</sv:SettingsView>
```
#### For global
```xml
<sv:SettingsView sv:RadioCell.SelectedValue="{Binding GlobalSelectedItem}">
<sv:Section Title="Effect">
<sv:RadioCell Title="Sound1" Value="{Binding Items[0]}">
<sv:RadioCell Title="Sound2" Value="{Binding Items[1]}">
</sv:Section>
<sv:Section Title="Melody">
<sv:RadioCell Title="Melody1" Value="{Binding Items[2]}">
<sv:RadioCell Title="Melody2" Value="{Binding Items[3]}">
</sv:Section>
</sv:SettingsView>
```
## NumberPickerCell
This is a LabelCell calling a number picker.
### Properties
* Number
* Current number.(default two way binding)
* Min
* Minimum number.
* Max
* Maximum number.
* PickerTitle
* Picker title text.
* SelectedCommand
* A command invoked when a number is selected.
* Unit
* Unit string.
This cell can't use ValueText property.
## TimePickerCell
This is a LabelCell calling a time picker.
### Properties
* Time
* Current time (default two way binding)
* Format
* Time format. (for example "hh:mm")
* PickerTitle
* Picker title text.
This cell can't use ValueText property.
## DatePickerCell
This is a LabelCell calling a date picker.
### Properties
* Date
* Current date. (default two way binding)
* MinimumDate
* MaximumDate
* Format
* Date format. (for example "ddd MMM d yyyy")
* TodayText
* Text of the button selecting today's date. (only iOS)
* If this text is empty, the button will be hidden.
* InitialDate
* Date to be set as the initial value of the picker if Date is null.
* IsAndroidSpinnerStyle
* True for Android when using spinner UI instead of calendar.
* AndroidButtonColor
* Button text color in Android dialog.
This cell can't use ValueText property.
## TextPickerCell
This is a LabelCell calling a text picker.
### Properties
* Items
* Picker data source implementing IList.
* This property can be set a list of built-in type. (e.g. List\<string>, List\<int>, List\<double>)
* The result of ToString method is used as appearance text.
* SelectedItem
* Selected item is set. (two-way binding)
* SelectedCommand
* A command invoked when an item is selected.
* IsCircularPicker
* Whether the picker items are circulated. (for Android)
* Default true
This cell can't use ValueText property.
## PickerCell
This is a LabelCell calling a multiple select picker.
When tapped on iOS, move next page and show picker there.
When tapped on Android, show the picker on a dialog.
### Properties
* PageTitle
* Picker page title text.
* ItemsSource
* Picker data source implementing IEnumerable.
* This have to assing a instance and must not null.
* DisplayMember
* Class member(property) name Displayed on the picker.
* SubDisplayMember
* Class member(property) name secondary displayed on the Picker. If this property is set, the cell will be two line and the first line will display DisplayMember and the second line will display SubDisplayMember.
* SelectionMode
* Whether SelectionMode is Single or Multiple. Default Multiple.
* SelectedItem
* If SelectionMode is Single, a selected item assigned.
* SelectedItems
* If SelectionMode is Multiple, selected items assigned.
* IList where selected items is stored.
* This have to assing a instance and must not null.
* SelectedItemsOrderKey
* Class member(Property) name that becomes a order key when selected items is displayed as text.
* SelectedCommand
* A command invoked When finished being selected items.
* MaxSelectedNumber
* Selectable items number.
* If zero, unlimited multi select mode. Else if One, single select mode. Otherwise limited multi select mode.
* KeepSelectedUntilBack
* When moving next page or showing a dialog, whether keep the cell selected until being back to the page.
* AccentColor
* Picker checkbox color.
* UseNaturalSort
* Whether use NaturalSort as sort method. default false.
* If true, for example, if the order is normally "1,10,2,3,4", is "1,2,3,4,10".
* This option may not correctly work if not used Japanese language.
* UsePickToClose
* Whether closing the Picker automatically if the number of selected items come to MaxSelectedNumber.
* UseAutoValueText
* Normally, selected items string is automatically displayed in the ValueText. If the value of this property is specified false, the auto display will be cleared and ValueText will be available as usual.
## EntryCell
This is a cell inputing some text.
### Properties
* ValueText
* Input text. (default two way binding)
* ValueTextColor
* Input text color.
* ValueTextFontSize
* ValueTextFontFamily
* ValueTextFontAttributes
* Input text font size, family, attributes.
* MaxLength
* Input text maximum length.
* Keyboard
* Keyboard type.
* Placeholder
* Placeholder text.
* PlaceholderColor
* Placeholder color.
* TextAlignment
* Input text horizontal alignment.
* AccentColor
* Under line color on focus. (only android)
* IsPassword
* Whether the input text is hidden or not for password.
* CompletedCommand
* A command invoked When completing to input or losing the focus.
### Methods
* SetFocus
* Set the EntryCell focus to show the soft keyboard.
## CustomCell
This is a cell that custom layout can be freely set in the center of Layout (blocks of the Title and ValueText and Description).
The forms view can be specified with XAML.
It is envisaged that makes use of subclass of CustomCell.
## Properties
* ShowArrowIndicator
* Whether the arrow indicator is shown at the right side.
* If true, the arrow is shown regardless of iOS and Android.
* IsSelectable
* Whether a row can be selected. If true, the Command can be invoked.
* IsMeasureOnce
* Whether a size calculation does just once. Default false.
* If the height doesn't change depending on the cell contents, a size calculation can be omitted.
* UseFullSize
* If true, the custom area uses full of the layout without paddings.
> If this property is enabled, the icon settings turn disabled.
* Command
* Invoked action.
* CommandParameter
* LongCommand
* Long tap command action.
* KeepSelectedUntilBack
* When moving next page, whether keep the cell selected until being back to the page.
### Example for CustomCell
* https://github.com/muak/AiForms.SettingsView/tree/development/Sample/Sample/Views/Cells
* https://github.com/muak/AiForms.SettingsView/blob/development/Sample/Sample/Views/CustomCellTest.xaml
## Contribution
We really appreciate your contribution.
Please read the [contribution guideline](CONTRIBUTING.md).
## Contributors
* [codegrue](https://github.com/codegrue)
* [cpraehaus](https://github.com/cpraehaus)
* [dylanberry](https://github.com/dylanberry)
* [RLittlesll](https://github.com/RLittlesII)
* [ChaseFlorell](https://github.com/ChaseFlorell)
* [OnTheFenceDevelopment](https://github.com/OnTheFenceDevelopment)
* [SiNeumann](https://github.com/SiNeumann)
* [akaegi](https://github.com/akaegi)
## Thanks
* NaturalComparer
* https://github.com/tomochan154/toy-box/blob/master/NaturalComparer.cs
## Donation
I am asking for your donation for continuous development🙇
Your donation will allow me to work harder and harder.
* [PayPalMe](https://paypal.me/kamusoftJP?locale.x=ja_JP)
## Sponsors
I am asking for sponsors too.
This is a subscription.
* [GitHub Sponsors](https://github.com/sponsors/muak)
## License
MIT Licensed.
Some code is taken from [.NET MAUI](https://github.com/dotnet/maui).
[Material design icons](https://github.com/google/material-design-icons) - [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
================================================
FILE: Sample/App.xaml
================================================
<?xml version = "1.0" encoding = "UTF-8" ?>
<Application xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:Sample"
x:Class="Sample.App">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Resources/Styles/Colors.xaml" />
<ResourceDictionary Source="Resources/Styles/Styles.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
================================================
FILE: Sample/App.xaml.cs
================================================
namespace Sample;
public partial class App : Application
{
public App()
{
InitializeComponent();
}
}
================================================
FILE: Sample/MauiProgram.cs
================================================
using System.Globalization;
using System.Reflection;
using AiForms.Settings;
using Microsoft.Maui;
using Prism;
using Prism.Navigation;
using Sample.ViewModels;
using Sample.Views;
namespace Sample;
public static class MauiProgram
{
public static MauiApp CreateMauiApp()
{
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.UsePrism(prism =>
{
prism.RegisterTypes(containerRegistry =>
{
containerRegistry.RegisterForNavigation<MyNavigationPage>();
containerRegistry.RegisterForNavigation<MainPage, MainViewModel>();
containerRegistry.RegisterForNavigation<ContentPage>();
containerRegistry.RegisterForNavigation<ListPage, ListViewModel>();
containerRegistry.RegisterForNavigation<CustomHeaderPage, CustomHeaderViewModel>();
containerRegistry.RegisterForNavigation<TapSurveyPage, TapSurveyViewModel>();
containerRegistry.RegisterForNavigation<HeaderSurveyPage, HeaderSurveyViewModel>();
containerRegistry.RegisterForNavigation<DynamicHeaderSizePage, DynamicHeaderSizeViewModel>();
containerRegistry.RegisterForNavigation<SurveyPage, SurveyViewModel>();
})
.OnAppStart(async(container, navigation) =>
{
await navigation.CreateBuilder()
.AddSegment(nameof(MyNavigationPage))
.AddSegment<MainViewModel>()
.NavigateAsync();
})
.OnInitialized(container =>
{
TaskScheduler.UnobservedTaskException += (s, e) =>
{
System.Diagnostics.Debug.WriteLine(e.Exception);
};
AppDomain.CurrentDomain.UnhandledException += (s, e) =>
{
System.Diagnostics.Debug.WriteLine(e.ExceptionObject);
};
});
})
.ConfigureMauiHandlers(handlers =>
{
handlers.AddSettingsViewHandler();
})
.ConfigureFonts(fonts =>
{
fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
});
return builder.Build();
}
}
================================================
FILE: Sample/Platforms/Android/AndroidManifest.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="jp.kamusoft.settingsview" android:versionCode="1" android:versionName="1.0">
<application android:allowBackup="true" android:icon="@mipmap/appicon" android:supportsRtl="true" android:label="Sample"></application>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-sdk android:minSdkVersion="27" android:targetSdkVersion="34" />
</manifest>
================================================
FILE: Sample/Platforms/Android/MainActivity.cs
================================================
using System.Reflection;
using Android.App;
using Android.Content;
using Android.Content.PM;
using Android.OS;
using Google.Android.Material.AppBar;
using Microsoft.Maui.Platform;
namespace Sample;
[Activity(Theme = "@style/Maui.SplashTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize | ConfigChanges.Density)]
public class MainActivity : MauiAppCompatActivity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
var layout = FindViewById<AppBarLayout>(Resource.Id.navigationlayout_appbar);
layout.Elevation = this.ToPixels(1);
}
}
================================================
FILE: Sample/Platforms/Android/MainApplication.cs
================================================
using Android.App;
using Android.Runtime;
namespace Sample;
[Application]
public class MainApplication : MauiApplication
{
public MainApplication(IntPtr handle, JniHandleOwnership ownership)
: base(handle, ownership)
{
}
protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
}
================================================
FILE: Sample/Platforms/Android/Resources/values/colors.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#512BD4</color>
<color name="colorPrimaryDark">#2B0B98</color>
<color name="colorAccent">#2B0B98</color>
</resources>
================================================
FILE: Sample/Platforms/iOS/AppDelegate.cs
================================================
using Foundation;
namespace Sample;
[Register("AppDelegate")]
public class AppDelegate : MauiUIApplicationDelegate
{
protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
}
================================================
FILE: Sample/Platforms/iOS/Info.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UIDeviceFamily</key>
<array>
<integer>1</integer>
<integer>2</integer>
</array>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>arm64</string>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>XSAppIconAssets</key>
<string>Assets.xcassets/appicon.appiconset</string>
<key>CFBundleDisplayName</key>
<string>SettingsView</string>
<key>CFBundleName</key>
<string>SettingsView</string>
</dict>
</plist>
================================================
FILE: Sample/Platforms/iOS/Program.cs
================================================
using ObjCRuntime;
using UIKit;
namespace Sample;
public class Program
{
// This is the main entry point of the application.
static void Main(string[] args)
{
// if you want to use a different Application Delegate class from "AppDelegate"
// you can specify it here.
UIApplication.Main(args, null, typeof(AppDelegate));
}
}
================================================
FILE: Sample/Properties/launchSettings.json
================================================
{
"profiles": {
"Windows Machine": {
"commandName": "MsixPackage",
"nativeDebugging": false
}
}
}
================================================
FILE: Sample/Resources/Raw/AboutAssets.txt
================================================
Any raw assets you want to be deployed with your application can be placed in
this directory (and child directories). Deployment of the asset to your application
is automatically handled by the following `MauiAsset` Build Action within your `.csproj`.
<MauiAsset Include="Resources\Raw\**" LogicalName="%(RecursiveDir)%(Filename)%(Extension)" />
These files will be deployed with you package and will be accessible using Essentials:
async Task LoadMauiAsset()
{
using var stream = await FileSystem.OpenAppPackageFileAsync("AboutAssets.txt");
using var reader = new StreamReader(stream);
var contents = reader.ReadToEnd();
}
================================================
FILE: Sample/Resources/Styles/Colors.xaml
================================================
<?xml version="1.0" encoding="UTF-8" ?>
<?xaml-comp compile="true" ?>
<ResourceDictionary
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">
<Color x:Key="Primary">#512BD4</Color>
<Color x:Key="Secondary">#DFD8F7</Color>
<Color x:Key="Tertiary">#2B0B98</Color>
<Color x:Key="White">White</Color>
<Color x:Key="Black">Black</Color>
<Color x:Key="Gray100">#E1E1E1</Color>
<Color x:Key="Gray200">#C8C8C8</Color>
<Color x:Key="Gray300">#ACACAC</Color>
<Color x:Key="Gray400">#919191</Color>
<Color x:Key="Gray500">#6E6E6E</Color>
<Color x:Key="Gray600">#404040</Color>
<Color x:Key="Gray900">#212121</Color>
<Color x:Key="Gray950">#141414</Color>
<SolidColorBrush x:Key="PrimaryBrush" Color="{StaticResource Primary}"/>
<SolidColorBrush x:Key="SecondaryBrush" Color="{StaticResource Secondary}"/>
<SolidColorBrush x:Key="TertiaryBrush" Color="{StaticResource Tertiary}"/>
<SolidColorBrush x:Key="WhiteBrush" Color="{StaticResource White}"/>
<SolidColorBrush x:Key="BlackBrush" Color="{StaticResource Black}"/>
<SolidColorBrush x:Key="Gray100Brush" Color="{StaticResource Gray100}"/>
<SolidColorBrush x:Key="Gray200Brush" Color="{StaticResource Gray200}"/>
<SolidColorBrush x:Key="Gray300Brush" Color="{StaticResource Gray300}"/>
<SolidColorBrush x:Key="Gray400Brush" Color="{StaticResource Gray400}"/>
<SolidColorBrush x:Key="Gray500Brush" Color="{StaticResource Gray500}"/>
<SolidColorBrush x:Key="Gray600Brush" Color="{StaticResource Gray600}"/>
<SolidColorBrush x:Key="Gray900Brush" Color="{StaticResource Gray900}"/>
<SolidColorBrush x:Key="Gray950Brush" Color="{StaticResource Gray950}"/>
<Color x:Key="Yellow100Accent">#F7B548</Color>
<Color x:Key="Yellow200Accent">#FFD590</Color>
<Color x:Key="Yellow300Accent">#FFE5B9</Color>
<Color x:Key="Cyan100Accent">#28C2D1</Color>
<Color x:Key="Cyan200Accent">#7BDDEF</Color>
<Color x:Key="Cyan300Accent">#C3F2F4</Color>
<Color x:Key="Blue100Accent">#3E8EED</Color>
<Color x:Key="Blue200Accent">#72ACF1</Color>
<Color x:Key="Blue300Accent">#A7CBF6</Color>
</ResourceDictionary>
================================================
FILE: Sample/Resources/Styles/Styles.xaml
================================================
<?xml version="1.0" encoding="UTF-8" ?>
<?xaml-comp compile="true" ?>
<ResourceDictionary
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">
<Style TargetType="ActivityIndicator">
<Setter Property="Color" Value="{AppThemeBinding Light={StaticResource Primary}, Dark={StaticResource White}}" />
</Style>
<Style TargetType="IndicatorView">
<Setter Property="IndicatorColor" Value="{AppThemeBinding Light={StaticResource Gray200}, Dark={StaticResource Gray500}}"/>
<Setter Property="SelectedIndicatorColor" Value="{AppThemeBinding Light={StaticResource Gray950}, Dark={StaticResource Gray100}}"/>
</Style>
<Style TargetType="Border">
<Setter Property="Stroke" Value="{AppThemeBinding Light={StaticResource Gray200}, Dark={StaticResource Gray500}}" />
<Setter Property="StrokeShape" Value="Rectangle"/>
<Setter Property="StrokeThickness" Value="1"/>
</Style>
<Style TargetType="BoxView">
<Setter Property="Color" Value="{AppThemeBinding Light={StaticResource Gray950}, Dark={StaticResource Gray200}}" />
</Style>
<Style TargetType="Button">
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource White}, Dark={StaticResource Primary}}" />
<Setter Property="BackgroundColor" Value="{AppThemeBinding Light={StaticResource Primary}, Dark={StaticResource White}}" />
<Setter Property="FontFamily" Value="OpenSansRegular"/>
<Setter Property="FontSize" Value="14"/>
<Setter Property="CornerRadius" Value="8"/>
<Setter Property="Padding" Value="14,10"/>
<Setter Property="VisualStateManager.VisualStateGroups">
<VisualStateGroupList>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal" />
<VisualState x:Name="Disabled">
<VisualState.Setters>
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Gray950}, Dark={StaticResource Gray200}}" />
<Setter Property="BackgroundColor" Value="{AppThemeBinding Light={StaticResource Gray200}, Dark={StaticResource Gray600}}" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateGroupList>
</Setter>
</Style>
<Style TargetType="CheckBox">
<Setter Property="Color" Value="{AppThemeBinding Light={StaticResource Primary}, Dark={StaticResource White}}" />
<Setter Property="VisualStateManager.VisualStateGroups">
<VisualStateGroupList>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal" />
<VisualState x:Name="Disabled">
<VisualState.Setters>
<Setter Property="Color" Value="{AppThemeBinding Light={StaticResource Gray300}, Dark={StaticResource Gray600}}" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateGroupList>
</Setter>
</Style>
<Style TargetType="DatePicker">
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Gray900}, Dark={StaticResource White}}" />
<Setter Property="BackgroundColor" Value="Transparent" />
<Setter Property="FontFamily" Value="OpenSansRegular"/>
<Setter Property="FontSize" Value="14"/>
<Setter Property="VisualStateManager.VisualStateGroups">
<VisualStateGroupList>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal" />
<VisualState x:Name="Disabled">
<VisualState.Setters>
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Gray200}, Dark={StaticResource Gray500}}" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateGroupList>
</Setter>
</Style>
<Style TargetType="Editor">
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Black}, Dark={StaticResource White}}" />
<Setter Property="BackgroundColor" Value="Transparent" />
<Setter Property="FontFamily" Value="OpenSansRegular"/>
<Setter Property="FontSize" Value="14" />
<Setter Property="PlaceholderColor" Value="{AppThemeBinding Light={StaticResource Gray200}, Dark={StaticResource Gray500}}" />
<Setter Property="VisualStateManager.VisualStateGroups">
<VisualStateGroupList>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal" />
<VisualState x:Name="Disabled">
<VisualState.Setters>
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Gray300}, Dark={StaticResource Gray600}}" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateGroupList>
</Setter>
</Style>
<Style TargetType="Entry">
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Black}, Dark={StaticResource White}}" />
<Setter Property="BackgroundColor" Value="Transparent" />
<Setter Property="FontFamily" Value="OpenSansRegular"/>
<Setter Property="FontSize" Value="14" />
<Setter Property="PlaceholderColor" Value="{AppThemeBinding Light={StaticResource Gray200}, Dark={StaticResource Gray500}}" />
<Setter Property="VisualStateManager.VisualStateGroups">
<VisualStateGroupList>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal" />
<VisualState x:Name="Disabled">
<VisualState.Setters>
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Gray300}, Dark={StaticResource Gray600}}" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateGroupList>
</Setter>
</Style>
<Style TargetType="Frame">
<Setter Property="HasShadow" Value="False" />
<Setter Property="BorderColor" Value="{AppThemeBinding Light={StaticResource Gray200}, Dark={StaticResource Gray950}}" />
<Setter Property="CornerRadius" Value="8" />
</Style>
<Style TargetType="ImageButton">
<Setter Property="Opacity" Value="1" />
<Setter Property="BorderColor" Value="Transparent"/>
<Setter Property="BorderWidth" Value="0"/>
<Setter Property="CornerRadius" Value="0"/>
<Setter Property="VisualStateManager.VisualStateGroups">
<VisualStateGroupList>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal" />
<VisualState x:Name="Disabled">
<VisualState.Setters>
<Setter Property="Opacity" Value="0.5" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateGroupList>
</Setter>
</Style>
<Style TargetType="Label">
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Gray900}, Dark={StaticResource White}}" />
<Setter Property="FontFamily" Value="OpenSansRegular" />
<Setter Property="FontSize" Value="14" />
<Setter Property="VisualStateManager.VisualStateGroups">
<VisualStateGroupList>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal" />
<VisualState x:Name="Disabled">
<VisualState.Setters>
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Gray300}, Dark={StaticResource Gray600}}" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateGroupList>
</Setter>
</Style>
<Style TargetType="ListView">
<Setter Property="SeparatorColor" Value="{AppThemeBinding Light={StaticResource Gray200}, Dark={StaticResource Gray500}}" />
<Setter Property="RefreshControlColor" Value="{AppThemeBinding Light={StaticResource Gray900}, Dark={StaticResource Gray200}}" />
</Style>
<Style TargetType="Picker">
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Gray900}, Dark={StaticResource White}}" />
<Setter Property="TitleColor" Value="{AppThemeBinding Light={StaticResource Gray900}, Dark={StaticResource Gray200}}" />
<Setter Property="BackgroundColor" Value="Transparent" />
<Setter Property="FontFamily" Value="OpenSansRegular"/>
<Setter Property="FontSize" Value="14"/>
<Setter Property="VisualStateManager.VisualStateGroups">
<VisualStateGroupList>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal" />
<VisualState x:Name="Disabled">
<VisualState.Setters>
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Gray300}, Dark={StaticResource Gray600}}" />
<Setter Property="TitleColor" Value="{AppThemeBinding Light={StaticResource Gray300}, Dark={StaticResource Gray600}}" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateGroupList>
</Setter>
</Style>
<Style TargetType="ProgressBar">
<Setter Property="ProgressColor" Value="{AppThemeBinding Light={StaticResource Primary}, Dark={StaticResource White}}" />
<Setter Property="VisualStateManager.VisualStateGroups">
<VisualStateGroupList>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal" />
<VisualState x:Name="Disabled">
<VisualState.Setters>
<Setter Property="ProgressColor" Value="{AppThemeBinding Light={StaticResource Gray300}, Dark={StaticResource Gray600}}" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateGroupList>
</Setter>
</Style>
<Style TargetType="RadioButton">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Black}, Dark={StaticResource White}}" />
<Setter Property="FontFamily" Value="OpenSansRegular"/>
<Setter Property="FontSize" Value="14"/>
<Setter Property="VisualStateManager.VisualStateGroups">
<VisualStateGroupList>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal" />
<VisualState x:Name="Disabled">
<VisualState.Setters>
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Gray300}, Dark={StaticResource Gray600}}" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateGroupList>
</Setter>
</Style>
<Style TargetType="RefreshView">
<Setter Property="RefreshColor" Value="{AppThemeBinding Light={StaticResource Gray900}, Dark={StaticResource Gray200}}" />
</Style>
<Style TargetType="SearchBar">
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Gray900}, Dark={StaticResource White}}" />
<Setter Property="PlaceholderColor" Value="{StaticResource Gray500}" />
<Setter Property="CancelButtonColor" Value="{StaticResource Gray500}" />
<Setter Property="BackgroundColor" Value="Transparent" />
<Setter Property="FontFamily" Value="OpenSansRegular" />
<Setter Property="FontSize" Value="14" />
<Setter Property="VisualStateManager.VisualStateGroups">
<VisualStateGroupList>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal" />
<VisualState x:Name="Disabled">
<VisualState.Setters>
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Gray300}, Dark={StaticResource Gray600}}" />
<Setter Property="PlaceholderColor" Value="{AppThemeBinding Light={StaticResource Gray300}, Dark={StaticResource Gray600}}" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateGroupList>
</Setter>
</Style>
<Style TargetType="SearchHandler">
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Gray900}, Dark={StaticResource White}}" />
<Setter Property="PlaceholderColor" Value="{StaticResource Gray500}" />
<Setter Property="BackgroundColor" Value="Transparent" />
<Setter Property="FontFamily" Value="OpenSansRegular" />
<Setter Property="FontSize" Value="14" />
<Setter Property="VisualStateManager.VisualStateGroups">
<VisualStateGroupList>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal" />
<VisualState x:Name="Disabled">
<VisualState.Setters>
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Gray300}, Dark={StaticResource Gray600}}" />
<Setter Property="PlaceholderColor" Value="{AppThemeBinding Light={StaticResource Gray300}, Dark={StaticResource Gray600}}" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateGroupList>
</Setter>
</Style>
<Style TargetType="Shadow">
<Setter Property="Radius" Value="15" />
<Setter Property="Opacity" Value="0.5" />
<Setter Property="Brush" Value="{AppThemeBinding Light={StaticResource White}, Dark={StaticResource White}}" />
<Setter Property="Offset" Value="10,10" />
</Style>
<Style TargetType="Slider">
<Setter Property="MinimumTrackColor" Value="{AppThemeBinding Light={StaticResource Primary}, Dark={StaticResource White}}" />
<Setter Property="MaximumTrackColor" Value="{AppThemeBinding Light={StaticResource Gray200}, Dark={StaticResource Gray600}}" />
<Setter Property="ThumbColor" Value="{AppThemeBinding Light={StaticResource Primary}, Dark={StaticResource White}}" />
<Setter Property="VisualStateManager.VisualStateGroups">
<VisualStateGroupList>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal" />
<VisualState x:Name="Disabled">
<VisualState.Setters>
<Setter Property="MinimumTrackColor" Value="{AppThemeBinding Light={StaticResource Gray300}, Dark={StaticResource Gray600}}"/>
<Setter Property="MaximumTrackColor" Value="{AppThemeBinding Light={StaticResource Gray300}, Dark={StaticResource Gray600}}"/>
<Setter Property="ThumbColor" Value="{AppThemeBinding Light={StaticResource Gray300}, Dark={StaticResource Gray600}}"/>
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateGroupList>
</Setter>
</Style>
<Style TargetType="SwipeItem">
<Setter Property="BackgroundColor" Value="{AppThemeBinding Light={StaticResource White}, Dark={StaticResource Black}}" />
</Style>
<Style TargetType="Switch">
<Setter Property="OnColor" Value="{AppThemeBinding Light={StaticResource Primary}, Dark={StaticResource White}}" />
<Setter Property="ThumbColor" Value="{StaticResource White}" />
<Setter Property="VisualStateManager.VisualStateGroups">
<VisualStateGroupList>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal" />
<VisualState x:Name="Disabled">
<VisualState.Setters>
<Setter Property="OnColor" Value="{AppThemeBinding Light={StaticResource Gray300}, Dark={StaticResource Gray600}}" />
<Setter Property="ThumbColor" Value="{AppThemeBinding Light={StaticResource Gray300}, Dark={StaticResource Gray600}}" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="On">
<VisualState.Setters>
<Setter Property="OnColor" Value="{AppThemeBinding Light={StaticResource Secondary}, Dark={StaticResource Gray200}}" />
<Setter Property="ThumbColor" Value="{AppThemeBinding Light={StaticResource Primary}, Dark={StaticResource White}}" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="Off">
<VisualState.Setters>
<Setter Property="ThumbColor" Value="{AppThemeBinding Light={StaticResource Gray400}, Dark={StaticResource Gray500}}" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateGroupList>
</Setter>
</Style>
<Style TargetType="TimePicker">
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Gray900}, Dark={StaticResource White}}" />
<Setter Property="Background" Value="Transparent"/>
<Setter Property="FontFamily" Value="OpenSansRegular"/>
<Setter Property="FontSize" Value="14"/>
<Setter Property="VisualStateManager.VisualStateGroups">
<VisualStateGroupList>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal" />
<VisualState x:Name="Disabled">
<VisualState.Setters>
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Gray300}, Dark={StaticResource Gray600}}" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateGroupList>
</Setter>
</Style>
<Style TargetType="Page" ApplyToDerivedTypes="True">
<Setter Property="Padding" Value="0"/>
<Setter Property="BackgroundColor" Value="{AppThemeBinding Light={StaticResource White}, Dark={StaticResource Black}}" />
</Style>
<Style TargetType="Shell" ApplyToDerivedTypes="True">
<Setter Property="Shell.BackgroundColor" Value="{AppThemeBinding Light={StaticResource Primary}, Dark={StaticResource Gray950}}" />
<Setter Property="Shell.ForegroundColor" Value="{OnPlatform WinUI={StaticResource Primary}, Default={StaticResource White}}"></Setter>
<Setter Property="Shell.TitleColor" Value="{AppThemeBinding Light={StaticResource White}, Dark={StaticResource White}}" />
<Setter Property="Shell.DisabledColor" Value="{AppThemeBinding Light={StaticResource Gray200}, Dark={StaticResource Gray950}}" />
<Setter Property="Shell.UnselectedColor" Value="{AppThemeBinding Light={StaticResource Gray200}, Dark={StaticResource Gray200}}" />
<Setter Property="Shell.NavBarHasShadow" Value="False" />
<Setter Property="Shell.TabBarBackgroundColor" Value="{AppThemeBinding Light={StaticResource White}, Dark={StaticResource Black}}" />
<Setter Property="Shell.TabBarForegroundColor" Value="{AppThemeBinding Light={StaticResource Primary}, Dark={StaticResource White}}" />
<Setter Property="Shell.TabBarTitleColor" Value="{AppThemeBinding Light={StaticResource Primary}, Dark={StaticResource White}}" />
<Setter Property="Shell.TabBarUnselectedColor" Value="{AppThemeBinding Light={StaticResource Gray900}, Dark={StaticResource Gray200}}" />
</Style>
<Style TargetType="NavigationPage">
<Setter Property="BarBackgroundColor" Value="{AppThemeBinding Light={StaticResource Primary}, Dark={StaticResource Gray950}}" />
<Setter Property="BarTextColor" Value="{AppThemeBinding Light={StaticResource Gray200}, Dark={StaticResource White}}" />
<Setter Property="IconColor" Value="{AppThemeBinding Light={StaticResource Gray200}, Dark={StaticResource White}}" />
</Style>
<Style TargetType="TabbedPage">
<Setter Property="BarBackgroundColor" Value="{AppThemeBinding Light={StaticResource White}, Dark={StaticResource Gray950}}" />
<Setter Property="BarTextColor" Value="{AppThemeBinding Light={StaticResource Primary}, Dark={StaticResource White}}" />
<Setter Property="UnselectedTabColor" Value="{AppThemeBinding Light={StaticResource Gray200}, Dark={StaticResource Gray950}}" />
<Setter Property="SelectedTabColor" Value="{AppThemeBinding Light={StaticResource Gray950}, Dark={StaticResource Gray200}}" />
</Style>
</ResourceDictionary>
================================================
FILE: Sample/Sample.csproj
================================================
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net9.0-android;net9.0-ios</TargetFrameworks>
<OutputType>Exe</OutputType>
<RootNamespace>Sample</RootNamespace>
<UseMaui>true</UseMaui>
<MauiVersion>9.0.120</MauiVersion>
<SingleProject>true</SingleProject>
<ImplicitUsings>enable</ImplicitUsings>
<!-- Display name -->
<ApplicationTitle>Sample</ApplicationTitle>
<!-- App Identifier -->
<ApplicationId>jp.kamusoft.settingsview</ApplicationId>
<ApplicationIdGuid>60E379AA-F738-4400-9693-BC2CD84B27FB</ApplicationIdGuid>
<!-- Versions -->
<ApplicationDisplayVersion>1.0</ApplicationDisplayVersion>
<ApplicationVersion>1</ApplicationVersion>
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios'">15.0</SupportedOSPlatformVersion>
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'android'">27.0</SupportedOSPlatformVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<WarningLevel>4</WarningLevel>
<AndroidUseSharedRuntime>true</AndroidUseSharedRuntime>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net9.0-ios|AnyCPU'">
<CodesignKey>iPhone Developer</CodesignKey>
<MtouchLink>None</MtouchLink>
<CreatePackage>false</CreatePackage>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net9.0-ios|AnyCPU'">
<CodesignKey>iPhone Developer</CodesignKey>
<MtouchDebug>true</MtouchDebug>
<!--<CodesignProvision>自動</CodesignProvision>-->
<CreatePackage>false</CreatePackage>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net9.0-android|AnyCPU'">
<EmbedAssembliesIntoApk>false</EmbedAssembliesIntoApk>
</PropertyGroup>
<ItemGroup>
<!-- App Icon -->
<MauiIcon Include="Resources\AppIcon\appicon.svg" ForegroundFile="Resources\AppIcon\appiconfg.svg" Color="#512BD4" />
<!-- Splash Screen -->
<MauiSplashScreen Include="Resources\Splash\splash.svg" Color="#512BD4" BaseSize="128,128" />
<!-- Images -->
<MauiImage Include="Resources\Images\*" />
<MauiFont Include="Resources\Fonts\*" />
<!-- Raw Assets (also remove the "Resources\Raw" prefix) -->
<MauiAsset Include="Resources\Raw\**" LogicalName="%(RecursiveDir)%(Filename)%(Extension)" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Prism.DryIoc.Maui" Version="9.0.271-pre" />
<PackageReference Include="ReactiveProperty" Version="9.3.4" />
<PackageReference Include="Microsoft.Maui.Controls" Version="$(MauiVersion)" />
<PackageReference Include="Microsoft.Maui.Controls.Compatibility" Version="$(MauiVersion)" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\SettingsView\SettingsView.csproj" />
</ItemGroup>
</Project>
================================================
FILE: Sample/ViewModels/CustomHeaderViewModel.cs
================================================
using System;
using Reactive.Bindings;
namespace Sample.ViewModels;
public class CustomHeaderViewModel:BindableBase
{
public ReactivePropertySlim<string> Description { get; } = new ReactivePropertySlim<string>();
public ReactivePropertySlim<bool> IsAgree { get; } = new ReactivePropertySlim<bool>();
public CustomHeaderViewModel()
{
Description.Value = "Text TextText Text Text Text Text Text Text Text Text Text Text Text Text Text End";
}
}
================================================
FILE: Sample/ViewModels/DynamicHeaderSizeViewModel.cs
================================================
namespace Sample.ViewModels;
public class DynamicHeaderSizeViewModel: BindableBase, IInitializeAsync,IPageLifecycleAware
{
public List<SampleHeaderModel> Items { get; set; }
public Task InitializeAsync(INavigationParameters parameters)
{
Items = new List<SampleHeaderModel>
{
new SampleHeaderModel
{
HeaderTitle = "Header 1",
DataList = new List<SampleDataModel>()
{
new SampleDataModel()
{
Title = "Title 1",
Data = "Data 1"
},
new SampleDataModel()
{
Title = "Title 2",
Data = "Data 2"
},
new SampleDataModel()
{
Title = "Title 3",
Data = "Data 3"
},
}
},
new SampleHeaderModel()
{
HeaderTitle = "Header 2",
DataList = new List<SampleDataModel>()
{
new SampleDataModel()
{
Title = "Title 1",
Data = "Data 1"
},
new SampleDataModel()
{
Title = "Title 2",
Data = "Data 2"
},
new SampleDataModel()
{
Title = "Title 3",
Data = "Data 3"
},
}
},
new SampleHeaderModel()
{
HeaderTitle = "Header 3",
DataList = new List<SampleDataModel>()
{
new SampleDataModel()
{
Title = "Title 1",
Data = "Data 1"
},
new SampleDataModel()
{
Title = "Title 2",
Data = "Data 2"
},
new SampleDataModel()
{
Title = "Title 3",
Data = "Data 3"
},
}
},
new SampleHeaderModel()
{
HeaderTitle = "Header 4",
DataList = new List<SampleDataModel>()
{
new SampleDataModel()
{
Title = "Title 1",
Data = "Data 1"
},
new SampleDataModel()
{
Title = "Title 2",
Data = "Data 2"
},
new SampleDataModel()
{
Title = "Title 3",
Data = "Data 3"
},
}
},
};
return Task.CompletedTask;
}
public async void OnAppearing()
{
await Task.Delay(250);
RaisePropertyChanged(nameof(Items));
}
public void OnDisappearing()
{
}
}
public class SampleHeaderModel
{
public List<SampleDataModel> DataList { get; set; }
public string HeaderTitle { get; set; }
}
public class SampleDataModel
{
public string Title { get; set; }
public string Data { get; set; }
}
================================================
FILE: Sample/ViewModels/HeaderSurveyViewModel.cs
================================================
using System;
using Reactive.Bindings;
namespace Sample.ViewModels;
public class HeaderSurveyViewModel: BindableBase
{
public ReactivePropertySlim<bool> IsShow { get; } = new();
public HeaderSurveyViewModel()
{
}
}
================================================
FILE: Sample/ViewModels/ListViewModel.cs
================================================
using System;
using System.Collections.ObjectModel;
namespace Sample.ViewModels;
public class ListViewModel: BindableBase
{
public ObservableCollection<string> ItemsSource { get; set; }
public ListViewModel()
{
var list = new List<string>
{
"Item1","Item2","Item3","Item4","Item5","Item6","Item7","Item8","Item9","Item10",
"Item11","Item12","Item13","Item14","Item15","Item16","Item17","Item18","Item19","Item20",
};
ItemsSource = new ObservableCollection<string>(list);
}
}
================================================
FILE: Sample/ViewModels/MainViewModel.cs
================================================
using System;
using System.Collections.ObjectModel;
using System.ComponentModel.DataAnnotations;
using System.Reactive.Linq;
using Reactive.Bindings;
namespace Sample.ViewModels
{
public class MainViewModel: BindableBase
{
[Required(ErrorMessage = "Required")]
[StringLength(15, ErrorMessage = "Input text less than or equal to 15 characters")]
public ReactiveProperty<string> InputText { get; }
public ReadOnlyReactiveProperty<string> InputError { get; }
public ReactiveProperty<bool> InputSectionVisible { get; } = new ReactiveProperty<bool>(true);
public ReactivePropertySlim<string> Content { get; } = new ReactivePropertySlim<string>("");
public ReactivePropertySlim<string> Description { get; } = new ReactivePropertySlim<string>("");
public ReactiveCommand ToProfileCommand { get; set; } = new ReactiveCommand();
public AsyncReactiveCommand SectionToggleCommand { get; set; }
public ReactiveCommand ClearContentCommand { get; } = new ReactiveCommand();
public ReactiveCommand AddContentCommand { get; } = new ReactiveCommand();
public ObservableCollection<Person> ItemsSource { get; } = new ObservableCollection<Person>();
public ObservableCollection<Person> SelectedItems { get; } = new ObservableCollection<Person>();
public ObservableCollection<string> TextItems { get; } = new ObservableCollection<string>(new List<string> { "Red", "Blue", "Green", "Pink", "Black", "White" });
public ReactiveProperty<string> SelectedText { get; } = new ReactiveProperty<string>("Green");
string[] languages = { "Java", "C#", "JavaScript", "PHP", "Perl", "C++", "Swift", "Kotlin", "Python", "Ruby", "Scala", "F#" };
public MainViewModel(INavigationService navigationService)
{
InputText = new ReactiveProperty<string>().SetValidateAttribute(() => this.InputText);
InputError = InputText.ObserveErrorChanged
.Select(x => x?.Cast<string>()?.FirstOrDefault())
.ToReadOnlyReactiveProperty();
SectionToggleCommand = InputText.ObserveHasErrors.Select(x => !x).ToAsyncReactiveCommand();
SectionToggleCommand.Subscribe(async _ => {
InputSectionVisible.Value = !InputSectionVisible.Value;
await Task.Delay(250);
});
ToProfileCommand.Subscribe(async _ => {
//Description.Value += "01234567890";
//await navigationService.NavigateAsync("ListPage");
//await navigationService.NavigateAsync("TapSurveyPage");
// await navigationService.NavigateAsync("HeaderSurveyPage");
// await navigationService.NavigateAsync("DynamicHeaderSizePage");
await navigationService.NavigateAsync("SurveyPage");
});
AddContentCommand.Subscribe(_ =>
{
Content.Value += "A\n";
});
ClearContentCommand.Subscribe(_ =>
{
Content.Value = "";
});
foreach (var item in languages)
{
ItemsSource.Add(new Person()
{
Name = item,
Age = 1
});
}
SelectedItems.Add(ItemsSource[1]);
SelectedItems.Add(ItemsSource[2]);
SelectedItems.Add(ItemsSource[3]);
}
}
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
}
================================================
FILE: Sample/ViewModels/SurveyViewModel.cs
================================================
using System.Collections.ObjectModel;
using Reactive.Bindings;
namespace Sample.ViewModels;
public class SurveyViewModel: BindableBase
{
public ObservableCollection<string> ItemsSource { get; set; } = new();
public ObservableCollection<string> ItemsSource2 { get; set; } = new();
public ReactivePropertySlim<bool> IsShow { get; } = new();
public AsyncReactiveCommand SubmitCommand { get; } = new();
public SurveyViewModel()
{
ItemsSource2.Add("X");
ItemsSource2.Add("Y");
ItemsSource2.Add("Z");
SubmitCommand.Subscribe(async () =>
{
ItemsSource.Clear();
await Task.Delay(500);
ItemsSource = new(new[] { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m","n","o","p","q","r","a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m","n","o","p","q","r" });
IsShow.Value = true;
RaisePropertyChanged(nameof(ItemsSource));
});
}
}
================================================
FILE: Sample/ViewModels/TapSurveyViewModel.cs
================================================
using System;
namespace Sample.ViewModels;
public class TapSurveyViewModel:BindableBase
{
public TapSurveyViewModel()
{
}
}
================================================
FILE: Sample/Views/Cells/MyCellA.xaml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<sv:CustomCell
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:sv="clr-namespace:AiForms.Settings;assembly=SettingsView"
x:Class="Sample.Views.Cells.MyCellA" ShowArrowIndicator="True" IsMeasureOnce="True" UseFullSize="True"
x:Name="me" >
<StackLayout BackgroundColor="Blue" InputTransparent="True">
<Label Text="{Binding Text,Source={x:Reference me}}" InputTransparent="True" HeightRequest="20" />
<Label Text="Hoge" />
<Label Text="Fuga" />
</StackLayout>
</sv:CustomCell>
================================================
FILE: Sample/Views/Cells/MyCellA.xaml.cs
================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using AiForms.Settings;
namespace Sample.Views.Cells;
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class MyCellA : CustomCell
{
public MyCellA()
{
InitializeComponent();
}
public static BindableProperty TextProperty =
BindableProperty.Create(
nameof(Text),
typeof(string),
typeof(MyCellA),
default(string),
defaultBindingMode: BindingMode.OneWay
);
public string Text {
get { return (string)GetValue(TextProperty); }
set { SetValue(TextProperty, value); }
}
}
================================================
FILE: Sample/Views/Cells/MyCellB.xaml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<sv:CustomCell
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:sv="clr-namespace:AiForms.Settings;assembly=SettingsView"
x:Class="Sample.Views.Cells.MyCellB" IsSelectable="False" ShowArrowIndicator="False">
<StackLayout BackgroundColor="Green">
<Button Text="Hoge" />
<Button Text="Fuga" />
<BoxView Color="Red" HeightRequest="20" />
<Label Text="AAAAAAAAAAAAAAA" />
</StackLayout>
</sv:CustomCell>
================================================
FILE: Sample/Views/Cells/MyCellB.xaml.cs
================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using AiForms.Settings;
namespace Sample.Views.Cells;
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class MyCellB : CustomCell
{
public MyCellB()
{
InitializeComponent();
}
}
================================================
FILE: Sample/Views/Cells/MyCellC.xaml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<sv:CustomCell
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:sv="clr-namespace:AiForms.Settings;assembly=SettingsView"
x:Class="Sample.Views.Cells.MyCellC"
IsMeasureOnce="True" UseFullSize="True" ShowArrowIndicator="False">
<StackLayout BackgroundColor="#999900">
<Label Text="FullSize" />
</StackLayout>
</sv:CustomCell>
================================================
FILE: Sample/Views/Cells/MyCellC.xaml.cs
================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using AiForms.Settings;
namespace Sample.Views.Cells;
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class MyCellC : CustomCell
{
public MyCellC()
{
InitializeComponent();
}
}
================================================
FILE: Sample/Views/Cells/SliderCell.xaml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<sv:CustomCell
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:sv="clr-namespace:AiForms.Settings;assembly=SettingsView"
x:Class="Sample.Views.Cells.SliderCell"
IsSelectable="False" IsMeasureOnce="True" ShowArrowIndicator="False" x:Name="me">
<Slider Minimum="{Binding Min,Source={x:Reference me}}" Maximum="{Binding Max,Source={x:Reference me}}" Value="{Binding Value,Source={x:Reference me}}"
ValueChanged="OnChanged" MinimumTrackColor="Red" MaximumTrackColor="Gray" ThumbColor="Orange"
HorizontalOptions="FillAndExpand" />
</sv:CustomCell>
================================================
FILE: Sample/Views/Cells/SliderCell.xaml.cs
================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Input;
using AiForms.Settings;
namespace Sample.Views.Cells;
public partial class SliderCell : CustomCell
{
public SliderCell()
{
InitializeComponent();
}
public static BindableProperty ValueProperty =
BindableProperty.Create(
nameof(Value),
typeof(double),
typeof(SliderCell),
default(double),
defaultBindingMode: BindingMode.TwoWay
);
public double Value {
get { return (double)GetValue(ValueProperty); }
set { SetValue(ValueProperty, value); }
}
public static BindableProperty MinProperty =
BindableProperty.Create(
nameof(Min),
typeof(double),
typeof(SliderCell),
default(double),
defaultBindingMode: BindingMode.OneWay
);
public double Min {
get { return (double)GetValue(MinProperty); }
set { SetValue(MinProperty, value); }
}
public static BindableProperty MaxProperty =
BindableProperty.Create(
nameof(Max),
typeof(double),
typeof(SliderCell),
1.0d,
defaultBindingMode: BindingMode.OneWay
);
public double Max {
get { return (double)GetValue(MaxProperty); }
set { SetValue(MaxProperty, value); }
}
public static BindableProperty ChangedCommandProperty =
BindableProperty.Create(
nameof(ChangedCommand),
typeof(ICommand),
typeof(SliderCell),
default(ICommand),
defaultBindingMode: BindingMode.OneWay
);
public ICommand ChangedCommand {
get { return (ICommand)GetValue(ChangedCommandProperty); }
set { SetValue(ChangedCommandProperty, value); }
}
void OnChanged(object sender,ValueChangedEventArgs e)
{
if(ChangedCommand == null)
{
return;
}
if(ChangedCommand.CanExecute(null))
{
ChangedCommand.Execute(Value);
}
}
}
================================================
FILE: Sample/Views/CustomHeaderPage.xaml
================================================
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:sv="clr-namespace:AiForms.Settings;assembly=SettingsView"
x:Class="Sample.Views.CustomHeaderPage"
Title="CustomHeaderPage">
<Grid RowDefinitions="*,Auto" BackgroundColor="LightGray">
<sv:SettingsView HeaderBackgroundColor="LightGray" Grid.Row="0">
<sv:Section>
<sv:Section.HeaderView>
<Grid RowDefinitions="Auto,Auto" Padding="16,8,16,8">
<Border Grid.Row="0"
Stroke="Red"
StrokeThickness="{OnPlatform iOS=3,Android=1}"
Padding="8" BackgroundColor="#FFDDDD"
Margin="0,8,0,8" StrokeShape="RoundRectangle 16">
<Grid ColumnDefinitions="Auto,*,Auto" RowDefinitions="Auto">
<Image Grid.Column="0"
Source="dotnet_bot"
WidthRequest="30" HeightRequest="30"
VerticalOptions="Center" />
<Label Grid.Column="1" Text="{Binding Description.Value}"
TextColor="Black"
FontSize="18"
LineBreakMode="WordWrap"
/>
<Image Grid.Column="2" Source="ic_close"
WidthRequest="12" HeightRequest="12"
VerticalOptions="Center" />
</Grid>
</Border>
<StackLayout Orientation="Horizontal" Spacing="0" Grid.Row="1"
>
<CheckBox IsChecked="{Binding IsAgree.Value}" Color="Orange"
VerticalOptions="Center" WidthRequest="36" x:Name="agreeCheckbox" />
<Label Text="I Agree"
TextColor="Black"
FontSize="18"
VerticalOptions="Center" />
</StackLayout>
</Grid>
</sv:Section.HeaderView>
</sv:Section>
<sv:Section Title="TitleA">
<sv:LabelCell Title="Label" />
</sv:Section>
<sv:Section Title="TitleB">
<sv:LabelCell Title="Label" />
</sv:Section>
</sv:SettingsView>
<Button Grid.Row="1" Text="Button" Margin="32,16,32,16" />
</Grid>
</ContentPage>
================================================
FILE: Sample/Views/CustomHeaderPage.xaml.cs
================================================
namespace Sample.Views;
public partial class CustomHeaderPage : ContentPage
{
public CustomHeaderPage()
{
InitializeComponent();
}
}
================================================
FILE: Sample/Views/DynamicHeaderSizePage.xaml
================================================
<?xml version="1.0" encoding="utf-8"?>
<ContentPage
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:sv="clr-namespace:AiForms.Settings;assembly=SettingsView"
xmlns:vm="clr-namespace:Sample.ViewModels"
x:Class="Sample.Views.DynamicHeaderSizePage"
x:DataType="vm:DynamicHeaderSizeViewModel"
BackgroundColor="#F2EFE6">
<sv:SettingsView HasUnevenRows="True">
<sv:Section Title="Section">
<sv:LabelCell Title="Hoge" />
</sv:Section>
<sv:Section Title="DynamicSection">
<sv:Section.FooterView>
<VerticalStackLayout Spacing="4"
BindableLayout.ItemsSource="{Binding Items}">
<BindableLayout.EmptyView>
<ActivityIndicator
WidthRequest="24" HeightRequest="24"
IsRunning="True"
Color="Red"
/>
</BindableLayout.EmptyView>
<BindableLayout.ItemTemplate>
<DataTemplate x:DataType="vm:SampleHeaderModel">
<Border Stroke="Gray" StrokeThickness="1"
BackgroundColor="White"
StrokeShape="RoundRectangle 16"
Margin="16" Padding="12">
<VerticalStackLayout>
<Label
Text="{Binding HeaderTitle}"
FontSize="24"
FontAttributes="Bold"
/>
<VerticalStackLayout BindableLayout.ItemsSource="{Binding DataList}">
<BindableLayout.ItemTemplate>
<DataTemplate x:DataType="vm:SampleDataModel">
<Grid ColumnDefinitions="*,Auto">
<Label
Grid.Column="0"
Text="{Binding Title}"
VerticalOptions="Center"
/>
<Label
Grid.Column="1"
Text="{Binding Data}"
VerticalOptions="Center"
/>
</Grid>
</DataTemplate>
</BindableLayout.ItemTemplate>
</VerticalStackLayout>
</VerticalStackLayout>
</Border>
</DataTemplate>
</BindableLayout.ItemTemplate>
</VerticalStackLayout>
</sv:Section.FooterView>
</sv:Section>
<sv:Section Title="Section">
<sv:LabelCell Title="A" />
<sv:LabelCell Title="B" />
<sv:LabelCell Title="C" />
<sv:LabelCell Title="D" />
</sv:Section>
</sv:SettingsView>
</ContentPage>
================================================
FILE: Sample/Views/DynamicHeaderSizePage.xaml.cs
================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Sample.Views;
public partial class DynamicHeaderSizePage : ContentPage
{
public DynamicHeaderSizePage()
{
InitializeComponent();
}
}
================================================
FILE: Sample/Views/HeaderSurveyPage.xaml
================================================
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:sv="clr-namespace:AiForms.Settings;assembly=SettingsView"
xmlns:vm="clr-namespace:Sample.ViewModels"
x:Class="Sample.Views.HeaderSurveyPage"
Title="HeaderSurveyPage"
x:DataType="vm:HeaderSurveyViewModel">
<sv:SettingsView HasUnevenRows="True">
<sv:Section>
<sv:Section.HeaderView>
<StackLayout Orientation="Horizontal" Spacing="0" Grid.Row="1">
<CheckBox IsChecked="{Binding IsShow.Value}"
VerticalOptions="Center" WidthRequest="36"/>
<Label Text="Agree"
TextColor="Black"
FontSize="16"
VerticalOptions="Center" />
</StackLayout>
</sv:Section.HeaderView>
</sv:Section>
<sv:Section IsVisible="{Binding IsShow.Value}">
<sv:Section.HeaderView>
<HorizontalStackLayout>
<BoxView WidthRequest="30" HeightRequest="30" Color="Red" />
<Label Text="Header" />
</HorizontalStackLayout>
</sv:Section.HeaderView>
<sv:PickerCell />
</sv:Section>
<sv:Section IsVisible="{Binding IsShow.Value}">
<sv:Section.HeaderView>
<HorizontalStackLayout>
<BoxView WidthRequest="30" HeightRequest="30" Color="Bisque" />
<Label Text="Header" />
</HorizontalStackLayout>
</sv:Section.HeaderView>
<sv:Section.FooterView>
<ContentView>
<Button
Text="Submit"
Margin="32,32,32,8"
/>
</ContentView>
</sv:Section.FooterView>
<sv:CustomCell IsMeasureOnce="False" IsSelectable="False"
ShowArrowIndicator="False" UseFullSize="True"
>
<Grid Padding="16,8,24,8">
<Editor
AutoSize="TextChanges"
MinimumHeightRequest="80"
MaxLength="300"
Placeholder="Input your text"
/>
</Grid>
</sv:CustomCell>
</sv:Section>
</sv:SettingsView>
</ContentPage>
================================================
FILE: Sample/Views/HeaderSurveyPage.xaml.cs
================================================
namespace Sample.Views;
public partial class HeaderSurveyPage : ContentPage
{
public HeaderSurveyPage()
{
InitializeComponent();
}
}
================================================
FILE: Sample/Views/ListPage.xaml
================================================
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:sv="clr-namespace:AiForms.Settings;assembly=SettingsView"
x:Class="Sample.Views.ListPage"
Title="ListPage">
<sv:SettingsView ItemsSource="{Binding ItemsSource}">
<sv:SettingsView.ItemTemplate>
<DataTemplate>
<sv:Section>
<sv:Section.HeaderView>
<Grid>
<ImageButton Source="ic_close"
WidthRequest="30" HeightRequest="30"
VerticalOptions="Center" HorizontalOptions="End"
Padding="0" />
</Grid>
</sv:Section.HeaderView>
<sv:LabelCell Title="{Binding}" />
</sv:Section>
</DataTemplate>
</sv:SettingsView.ItemTemplate>
</sv:SettingsView>
</ContentPage>
================================================
FILE: Sample/Views/ListPage.xaml.cs
================================================
namespace Sample.Views;
public partial class ListPage : ContentPage
{
public ListPage()
{
InitializeComponent();
}
}
================================================
FILE: Sample/Views/MainPage.xaml
================================================
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:sv="clr-namespace:AiForms.Settings;assembly=SettingsView"
xmlns:cell="clr-namespace:Sample.Views.Cells"
x:Class="Sample.Views.MainPage"
Title="SettingsView.Maui">
<ContentPage.Resources>
<!-- アプリ全体の背景色 -->
<Color x:Key="AppBackground">#ffffff</Color>
<!-- アクセントカラー -->
<Color x:Key="AccentColor">#FFBF00</Color>
<!-- 非アクティブカラー -->
<Color x:Key="DisabledColor">#E6DAB9</Color>
<!-- タイトルテキストカラー -->
<Color x:Key="TitleTextColor">#CC9900</Color>
<!-- 薄い背景色1 -->
<Color x:Key="PaleBackColorPrimary">#F2EFE6</Color>
<!-- 薄い背景色2 -->
<Color x:Key="PaleBackColorSecondary">#F2EDDA</Color>
<!-- 濃いめの文字色 -->
<Color x:Key="DeepTextColor">#555555</Color>
<!-- 通常文字色 -->
<Color x:Key="NormalTextColor">#666666</Color>
<!-- 薄い文字色 -->
<Color x:Key="PaleTextColor">#999999</Color>
<!-- 強調文字色 -->
<Color x:Key="EmphasisTextColor">#FF0000</Color>
<Style TargetType="sv:SettingsView">
<Setter Property="SeparatorColor" Value="{StaticResource DisabledColor}" />
<Setter Property="BackgroundColor" Value="{StaticResource PaleBackColorPrimary}" />
<Setter Property="HeaderBackgroundColor" Value="{StaticResource PaleBackColorPrimary}" />
<Setter Property="CellBackgroundColor" Value="{StaticResource AppBackground}" />
<Setter Property="CellTitleColor" Value="{StaticResource DeepTextColor}" />
<Setter Property="CellValueTextColor" Value="{StaticResource NormalTextColor}" />
<Setter Property="CellTitleFontSize" Value="17" />
<Setter Property="CellValueTextFontSize" Value="12" />
<Setter Property="CellDescriptionColor" Value="{StaticResource NormalTextColor}" />
<Setter Property="CellDescriptionFontSize" Value="11" />
<Setter Property="CellAccentColor" Value="{StaticResource AccentColor}" />
<Setter Property="SelectedColor" Value="#50FFBF00" />
<Setter Property="HeaderTextColor" Value="{StaticResource TitleTextColor}" />
<Setter Property="FooterFontSize" Value="11" />
<Setter Property="FooterTextColor" Value="{StaticResource PaleTextColor}" />
</Style>
</ContentPage.Resources>
<Grid RowDefinitions="*,Auto,Auto,Auto">
<sv:SettingsView Grid.Row="0" HasUnevenRows="True" HeaderHeight="36" HeaderPadding="14,0,0,6" HeaderTextVerticalAlign="End" FooterPadding="14,4,4,6" ShowArrowIndicatorForAndroid="True"
>
<sv:Section FooterText="This is a footer. optionaly you can write here.">
<sv:CommandCell IconSource="dotnet_bot" IconSize="60,60" IconRadius="30" Title="Xam Xamarin" Height="80"
Description="hoge@fuga.com" Command="{Binding ToProfileCommand}" KeepSelectedUntilBack="False"
IgnoreUseDescriptionAsValue="true"
/>
</sv:Section>
<sv:Section Title="Test">
<sv:CustomCell x:Name="testCell">
<Grid Padding="16" x:Name="grid">
<Label Text="{Binding Content.Value}" LineBreakMode="CharacterWrap" x:Name="innerLabel" />
</Grid>
</sv:CustomCell>
<!--<sv:ButtonCell Title="Add" Command="{Binding AddContentCommand}" />
<sv:ButtonCell Title="Clear" Command="{Binding ClearContentCommand}" />-->
</sv:Section>
<sv:Section Title="LabelCell">
<sv:LabelCell Title="Storage" IconSource="dotnet_bot" ValueText="3,065MB" Description="{Binding Description.Value}" />
</sv:Section>
<sv:Section Title="CheckableCell">
<sv:SwitchCell Title="Switch" On="true"
Description="This is description. you can write detail explanation of the item here. long text wrap automatically." />
<sv:CheckboxCell Title="Checkbox" Checked="true" />
</sv:Section>
<sv:Section Title="MultiPicker" FooterText="This is a multi select picker. you are free to select items until MaxSelectedNumber.">
<sv:PickerCell Title="Favorites" ItemsSource="{Binding ItemsSource}" DisplayMember="Name" MaxSelectedNumber="3" UsePickToClose="True"
SelectedItems="{Binding SelectedItems}" KeepSelectedUntilBack="true" PageTitle="select 3 items" />
</sv:Section>
<sv:Section Title="Picker 4 Brothers">
<sv:NumberPickerCell Title="NumberPicker" Min="0" Max="99" Number="15" Unit="px" PickerTitle="Select number" />
<sv:TimePickerCell Title="TimePicker" Format="HH:mm" Time="15:30" PickerTitle="Select time" />
<sv:DatePickerCell Title="DatePicker" Format="yyyy/MM/dd (ddd)" Date="2017/11/11" MinimumDate="2015/11/10" MaximumDate="2025/12/31" TodayText="Today's date" IsAndroidSpinnerStyle="True" />
<sv:TextPickerCell Title="TextPicker" Items="{Binding TextItems}" SelectedItem="{Binding SelectedText.Value}" IsCircularPicker="False" />
</sv:Section>
<sv:Section Title="RadioCell" FooterText="You can select either TypeA or TypeB." sv:RadioCell.SelectedValue="1">
<sv:RadioCell Title="TypeA" Value="1" />
<sv:RadioCell Title="TypeB" Value="2" />
</sv:Section>
<sv:Section Title="Input" IsVisible="{Binding InputSectionVisible.Value}">
<sv:EntryCell Title="EntryCell" ValueText="{Binding InputText.Value}" Placeholder="Input text" TextAlignment="End" HintText="{Binding InputError.Value}" Keyboard="Default" ShowDoneButtonOnIOS="True" />
</sv:Section>
<sv:Section>
<sv:Section.HeaderView>
<FlexLayout Direction="Row" JustifyContent="SpaceBetween" AlignItems="End" HeightRequest="50" Padding="10,0,10,6">
<Label Text="CustomHeaderView" TextColor="DeepSkyBlue" />
<ImageButton Source="icon.png" WidthRequest="20" HeightRequest="20" />
</FlexLayout>
</sv:Section.HeaderView>
<sv:Section.FooterView>
<Label Text="CustomFooterView. " TextColor="DeepSkyBlue" Padding="10,6,10,0" />
</sv:Section.FooterView>
<cell:SliderCell Value="0.5" HintText="CustomCell" />
</sv:Section>
<sv:Section Title="ButtonCell" FooterText="Change input section visibility.">
<sv:ButtonCell Title="Toggle Section" TitleColor="{StaticResource TitleTextColor}" TitleAlignment="Center" Command="{Binding SectionToggleCommand}" />
</sv:Section>
</sv:SettingsView>
<Button Grid.Row="1" Text="Add" Command="{Binding AddContentCommand}" />
<Button Grid.Row="2" Text="Clear" Command="{Binding ClearContentCommand}" />
<Button Grid.Row="3" Text="Reload" Clicked="Button_Clicked" />
</Grid>
</ContentPage>
================================================
FILE: Sample/Views/MainPage.xaml.cs
================================================
using AiForms.Settings;
using Sample.ViewModels;
namespace Sample.Views;
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
protected override void OnBindingContextChanged()
{
base.OnBindingContextChanged();
if(BindingContext is MainViewModel vm)
{
vm.Content.Subscribe(async _ =>
{
//await Task.Delay(500);
//MainThread.BeginInvokeOnMainThread(() => testCell.Reload());
//MainThread.BeginInvokeOnMainThread(() => testCell.Reload());
//Dispatcher.DispatchDelayed(TimeSpan.FromMilliseconds(250),()=>testCell.Reload());
});
}
}
void Button_Clicked(System.Object sender, System.EventArgs e)
{
MainThread.BeginInvokeOnMainThread(() => testCell.Reload());
}
}
================================================
FILE: Sample/Views/MyNavigationPage.cs
================================================
using System;
namespace Sample.Views
{
public class MyNavigationPage : NavigationPage
{
public MyNavigationPage()
{
BarBackgroundColor = Colors.White;
}
public MyNavigationPage(Page root) : base(root)
{
BarBackgroundColor = Colors.White;
}
}
}
================================================
FILE: Sample/Views/SurveyPage.xaml
================================================
<?xml version="1.0" encoding="utf-8"?>
<ContentPage
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:sv="clr-namespace:AiForms.Settings;assembly=SettingsView"
xmlns:vm="clr-namespace:Sample.ViewModels"
x:Class="Sample.Views.SurveyPage"
x:DataType="vm:SurveyViewModel">
<Grid RowDefinitions="Auto,*">
<sv:SettingsView Grid.Row="1">
<sv:Section Title="A" ItemsSource="{Binding ItemsSource}" IsVisible="{Binding IsShow.Value}">
<sv:Section.ItemTemplate>
<DataTemplate x:DataType="x:String">
<sv:CommandCell
HideArrowIndicator="True"
Title="{Binding .}" />
</DataTemplate>
</sv:Section.ItemTemplate>
</sv:Section>
<sv:Section Title="B" ItemsSource="{Binding ItemsSource2}">
<sv:Section.ItemTemplate>
<DataTemplate x:DataType="x:String">
<sv:CustomCell>
<Grid ColumnDefinitions="*, Auto">
<Label
Grid.Column="0"
Text="{Binding .}"
FontAttributes="Bold" />
<ImageButton
Grid.Column="1"
Source="dotnet_bot"
WidthRequest="24"
HeightRequest="24"
/>
</Grid>
</sv:CustomCell>
</DataTemplate>
</sv:Section.ItemTemplate>
</sv:Section>
</sv:SettingsView>
<Button
Grid.Row="0"
Text="Submit"
Command="{Binding SubmitCommand}"
/>
</Grid>
</ContentPage>
================================================
FILE: Sample/Views/SurveyPage.xaml.cs
================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Sample.Views;
public partial class SurveyPage : ContentPage
{
public SurveyPage()
{
InitializeComponent();
}
}
================================================
FILE: Sample/Views/TapSurveyPage.xaml
================================================
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:sv="clr-namespace:AiForms.Settings;assembly=SettingsView"
x:Class="Sample.Views.TapSurveyPage"
Title="TapSurveyPage">
<sv:SettingsView>
<sv:Section>
<sv:Section.HeaderView>
<HorizontalStackLayout>
<Label Text="Header" HeightRequest="44">
<Label.GestureRecognizers>
<TapGestureRecognizer Tapped="TapGestureRecognizer_Tapped_3" />
</Label.GestureRecognizers>
</Label>
</HorizontalStackLayout>
</sv:Section.HeaderView>
<sv:Section.FooterView>
<HorizontalStackLayout>
<Label Text="Footer" HeightRequest="44">
<Label.GestureRecognizers>
<TapGestureRecognizer Tapped="TapGestureRecognizer_Tapped_4" />
</Label.GestureRecognizers>
</Label>
</HorizontalStackLayout>
</sv:Section.FooterView>
<sv:CustomCell IsSelectable="True">
<Grid ColumnDefinitions="*,*,*">
<StackLayout Grid.Column="0">
<StackLayout.GestureRecognizers>
<TapGestureRecognizer Tapped="TapGestureRecognizer_Tapped" />
</StackLayout.GestureRecognizers>
<Image />
<Label Text="A"
FontAttributes="Bold"
HorizontalOptions="Center"/>
</StackLayout>
<StackLayout Grid.Column="1">
<StackLayout.GestureRecognizers>
<TapGestureRecognizer Tapped="TapGestureRecognizer_Tapped_1" />
</StackLayout.GestureRecognizers>
<Image />
<Label Text="B"
FontAttributes="Bold"
HorizontalOptions="Center"/>
</StackLayout>
<StackLayout Grid.Column="2">
<StackLayout.GestureRecognizers>
<TapGestureRecognizer Tapped="TapGestureRecognizer_Tapped_2" />
</StackLayout.GestureRecognizers>
<Image />
<Label Text="C"
FontAttributes="Bold"
HorizontalOptions="Center"/>
</StackLayout>
</Grid>
</sv:CustomCell>
</sv:Section>
</sv:SettingsView>
</ContentPage>
================================================
FILE: Sample/Views/TapSurveyPage.xaml.cs
================================================
namespace Sample.Views;
public partial class TapSurveyPage : ContentPage
{
public TapSurveyPage()
{
InitializeComponent();
}
void TapGestureRecognizer_Tapped(System.Object sender, Microsoft.Maui.Controls.TappedEventArgs e)
{
}
void TapGestureRecognizer_Tapped_1(System.Object sender, Microsoft.Maui.Controls.TappedEventArgs e)
{
}
void TapGestureRecognizer_Tapped_2(System.Object sender, Microsoft.Maui.Controls.TappedEventArgs e)
{
}
void TapGestureRecognizer_Tapped_3(System.Object sender, Microsoft.Maui.Controls.TappedEventArgs e)
{
}
void TapGestureRecognizer_Tapped_4(System.Object sender, Microsoft.Maui.Controls.TappedEventArgs e)
{
}
}
================================================
FILE: SettingsView/BindableBase.cs
================================================
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Runtime.CompilerServices;
namespace AiForms.Settings
{
public abstract class BindableBase : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
protected virtual bool SetProperty<T>(ref T storage, T value, [CallerMemberName] string propertyName = null)
{
if (EqualityComparer<T>.Default.Equals(storage, value)) return false;
storage = value;
RaisePropertyChanged(propertyName);
return true;
}
protected virtual bool SetProperty<T>(ref T storage, T value, Action onChanged, [CallerMemberName] string propertyName = null)
{
if (EqualityComparer<T>.Default.Equals(storage, value)) return false;
storage = value;
onChanged?.Invoke();
RaisePropertyChanged(propertyName);
return true;
}
protected void RaisePropertyChanged([CallerMemberName] string propertyName = null)
{
OnPropertyChanged(new PropertyChangedEventArgs(propertyName));
}
protected virtual void OnPropertyChanged(PropertyChangedEventArgs args)
{
PropertyChanged?.Invoke(this, args);
}
}
}
================================================
FILE: SettingsView/CellPropertyChangedEventHandler.cs
================================================
using System;
using System.ComponentModel;
namespace AiForms.Settings;
public class CellPropertyChangedEventArgs : PropertyChangedEventArgs
{
public Section Section { get; }
public CellPropertyChangedEventArgs(string propertyName, Section section) : base(propertyName)
{
Section = section;
}
}
================================================
FILE: SettingsView/Cells/ButtonCell.cs
================================================
using System;
using System.Windows.Input;
namespace AiForms.Settings;
/// <summary>
/// Button cell.
/// </summary>
public class ButtonCell:CellBase
{
private new string Description { get; set; }
private new Color DescriptionColor { get; set; }
private new double DescriptionFontSize { get; set; }
/// <summary>
/// The title alignment property.
/// </summary>
public static BindableProperty TitleAlignmentProperty =
BindableProperty.Create(
nameof(TitleAlignment),
typeof(TextAlignment),
typeof(ButtonCell),
TextAlignment.Center,
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets the title alignment.
/// </summary>
/// <value>The title alignment.</value>
public TextAlignment TitleAlignment
{
get { return (TextAlignment)GetValue(TitleAlignmentProperty); }
set { SetValue(TitleAlignmentProperty, value); }
}
/// <summary>
/// The command property.
/// </summary>
public static BindableProperty CommandProperty =
BindableProperty.Create(
nameof(Command),
typeof(ICommand),
typeof(ButtonCell),
default(ICommand),
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets the command.
/// </summary>
/// <value>The command.</value>
public ICommand Command
{
get { return (ICommand)GetValue(CommandProperty); }
set { SetValue(CommandProperty, value); }
}
/// <summary>
/// The command parameter property.
/// </summary>
public static BindableProperty CommandParameterProperty =
BindableProperty.Create(
nameof(CommandParameter),
typeof(object),
typeof(ButtonCell),
default(object),
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets the command parameter.
/// </summary>
/// <value>The command parameter.</value>
public object CommandParameter
{
get { return (object)GetValue(CommandParameterProperty); }
set { SetValue(CommandParameterProperty, value); }
}
}
================================================
FILE: SettingsView/Cells/CellBase.cs
================================================
using System;
using System.ComponentModel;
using Microsoft.Maui.Platform;
namespace AiForms.Settings;
public class CellBase: Element, IImageSourcePart
{
/// <summary>
/// Occurs when tapped.
/// </summary>
public event EventHandler Tapped;
internal void OnTapped()
{
if (Tapped != null)
Tapped(this, EventArgs.Empty);
}
/// <summary>
/// The title property.
/// </summary>
public static BindableProperty TitleProperty =
BindableProperty.Create(
nameof(Title),
typeof(string),
typeof(CellBase),
default(string),
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets the title.
/// </summary>
/// <value>The title.</value>
public string Title
{
get { return (string)GetValue(TitleProperty); }
set { SetValue(TitleProperty, value); }
}
/// <summary>
/// The title color property.
/// </summary>
public static BindableProperty TitleColorProperty =
BindableProperty.Create(
nameof(TitleColor),
typeof(Color),
typeof(CellBase),
KnownColor.Default,
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets the color of the title.
/// </summary>
/// <value>The color of the title.</value>
public Color TitleColor
{
get { return (Color)GetValue(TitleColorProperty); }
set { SetValue(TitleColorProperty, value); }
}
/// <summary>
/// The title font size property.
/// </summary>
public static BindableProperty TitleFontSizeProperty =
BindableProperty.Create(
nameof(TitleFontSize),
typeof(double),
typeof(CellBase),
-1.0,
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets the size of the title font.
/// </summary>
/// <value>The size of the title font.</value>
[TypeConverter(typeof(FontSizeConverter))]
public double TitleFontSize
{
get { return (double)GetValue(TitleFontSizeProperty); }
set { SetValue(TitleFontSizeProperty, value); }
}
public static BindableProperty TitleFontFamilyProperty = BindableProperty.Create(
nameof(TitleFontFamily),
typeof(string),
typeof(CellBase),
default(string),
defaultBindingMode: BindingMode.OneWay
);
public string TitleFontFamily
{
get { return (string)GetValue(TitleFontFamilyProperty); }
set { SetValue(TitleFontFamilyProperty, value); }
}
public static BindableProperty TitleFontAttributesProperty = BindableProperty.Create(
nameof(TitleFontAttributes),
typeof(FontAttributes?),
typeof(CellBase),
null,
defaultBindingMode: BindingMode.OneWay
);
public FontAttributes? TitleFontAttributes
{
get { return (FontAttributes?)GetValue(TitleFontAttributesProperty); }
set { SetValue(TitleFontAttributesProperty, value); }
}
/// <summary>
/// The description property.
/// </summary>
public static BindableProperty DescriptionProperty =
BindableProperty.Create(
nameof(Description),
typeof(string),
typeof(CellBase),
default(string),
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets the description.
/// </summary>
/// <value>The description.</value>
public string Description
{
get { return (string)GetValue(DescriptionProperty); }
set { SetValue(DescriptionProperty, value); }
}
/// <summary>
/// The description color property.
/// </summary>
public static BindableProperty DescriptionColorProperty =
BindableProperty.Create(
nameof(DescriptionColor),
typeof(Color),
typeof(CellBase),
KnownColor.Default,
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets the color of the description.
/// </summary>
/// <value>The color of the description.</value>
public Color DescriptionColor
{
get { return (Color)GetValue(DescriptionColorProperty); }
set { SetValue(DescriptionColorProperty, value); }
}
/// <summary>
/// The description font size property.
/// </summary>
public static BindableProperty DescriptionFontSizeProperty =
BindableProperty.Create(
nameof(DescriptionFontSize),
typeof(double),
typeof(CellBase),
-1.0d,
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets the size of the description font.
/// </summary>
/// <value>The size of the description font.</value>
[TypeConverter(typeof(FontSizeConverter))]
public double DescriptionFontSize
{
get { return (double)GetValue(DescriptionFontSizeProperty); }
set { SetValue(DescriptionFontSizeProperty, value); }
}
public static BindableProperty DescriptionFontFamilyProperty = BindableProperty.Create(
nameof(DescriptionFontFamily),
typeof(string),
typeof(CellBase),
default(string),
defaultBindingMode: BindingMode.OneWay
);
public string DescriptionFontFamily
{
get { return (string)GetValue(DescriptionFontFamilyProperty); }
set { SetValue(DescriptionFontFamilyProperty, value); }
}
public static BindableProperty DescriptionFontAttributesProperty = BindableProperty.Create(
nameof(DescriptionFontAttributes),
typeof(FontAttributes?),
typeof(CellBase),
null,
defaultBindingMode: BindingMode.OneWay
);
public FontAttributes? DescriptionFontAttributes
{
get { return (FontAttributes?)GetValue(DescriptionFontAttributesProperty); }
set { SetValue(DescriptionFontAttributesProperty, value); }
}
/// <summary>
/// The hint text property.
/// </summary>
public static BindableProperty HintTextProperty =
BindableProperty.Create(
nameof(HintText),
typeof(string),
typeof(CellBase),
default(string),
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets the hint text.
/// </summary>
/// <value>The hint text.</value>
public string HintText
{
get { return (string)GetValue(HintTextProperty); }
set { SetValue(HintTextProperty, value); }
}
/// <summary>
/// The hint text color property.
/// </summary>
public static BindableProperty HintTextColorProperty =
BindableProperty.Create(
nameof(HintTextColor),
typeof(Color),
typeof(CellBase),
KnownColor.Default,
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets the color of the hint text.
/// </summary>
/// <value>The color of the hint text.</value>
public Color HintTextColor
{
get { return (Color)GetValue(HintTextColorProperty); }
set { SetValue(HintTextColorProperty, value); }
}
/// <summary>
/// The hint font size property.
/// </summary>
public static BindableProperty HintFontSizeProperty =
BindableProperty.Create(
nameof(HintFontSize),
typeof(double),
typeof(CellBase),
-1.0d,
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets the size of the hint font.
/// </summary>
/// <value>The size of the hint font.</value>
[TypeConverter(typeof(FontSizeConverter))]
public double HintFontSize
{
get { return (double)GetValue(HintFontSizeProperty); }
set { SetValue(HintFontSizeProperty, value); }
}
public static BindableProperty HintFontFamilyProperty = BindableProperty.Create(
nameof(HintFontFamily),
typeof(string),
typeof(CellBase),
default(string),
defaultBindingMode: BindingMode.OneWay
);
public string HintFontFamily
{
get { return (string)GetValue(HintFontFamilyProperty); }
set { SetValue(HintFontFamilyProperty, value); }
}
public static BindableProperty HintFontAttributesProperty = BindableProperty.Create(
nameof(HintFontAttributes),
typeof(FontAttributes?),
typeof(CellBase),
null,
defaultBindingMode: BindingMode.OneWay
);
public FontAttributes? HintFontAttributes
{
get { return (FontAttributes?)GetValue(HintFontAttributesProperty); }
set { SetValue(HintFontAttributesProperty, value); }
}
/// <summary>
/// The background color property.
/// </summary>
public static BindableProperty BackgroundColorProperty =
BindableProperty.Create(
nameof(BackgroundColor),
typeof(Color),
typeof(CellBase),
KnownColor.Default,
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets the color of the background.
/// </summary>
/// <value>The color of the background.</value>
public Color BackgroundColor
{
get { return (Color)GetValue(BackgroundColorProperty); }
set { SetValue(BackgroundColorProperty, value); }
}
/// <summary>
/// The icon source property.
/// </summary>
public static BindableProperty IconSourceProperty =
BindableProperty.Create(
nameof(IconSource),
typeof(ImageSource),
typeof(CellBase),
default(ImageSource),
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets the icon source.
/// </summary>
/// <value>The icon source.</value>
[TypeConverter(typeof(ImageSourceConverter))]
public ImageSource IconSource
{
get { return (ImageSource)GetValue(IconSourceProperty); }
set { SetValue(IconSourceProperty, value); }
}
/// <summary>
/// The icon size property.
/// </summary>
public static BindableProperty IconSizeProperty =
BindableProperty.Create(
nameof(IconSize),
typeof(Size),
typeof(CellBase),
default(Size),
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets the size of the icon.
/// </summary>
/// <value>The size of the icon.</value>
[TypeConverter(typeof(SizeConverter))]
public Size IconSize
{
get { return (Size)GetValue(IconSizeProperty); }
set { SetValue(IconSizeProperty, value); }
}
/// <summary>
/// The icon radius property.
/// </summary>
public static BindableProperty IconRadiusProperty =
BindableProperty.Create(
nameof(IconRadius),
typeof(double),
typeof(CellBase),
-1.0d,
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets the icon radius.
/// </summary>
/// <value>The icon radius.</value>
public double IconRadius
{
get { return (double)GetValue(IconRadiusProperty); }
set { SetValue(IconRadiusProperty, value); }
}
/// <summary>
/// The IsVisible property.
/// </summary>
public static BindableProperty IsVisibleProperty =
BindableProperty.Create(
nameof(IsVisible),
typeof(bool),
typeof(CellBase),
true,
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets a value indicating whether this <see cref="CellBase"/> is visible.
/// </summary>
/// <value><c>true</c> if is visible; otherwise, <c>false</c>.</value>
public bool IsVisible
{
get { return (bool)GetValue(IsVisibleProperty); }
set { SetValue(IsVisibleProperty, value); }
}
public static BindableProperty HeightProperty = BindableProperty.Create(
nameof(Height),
typeof(double),
typeof(CellBase),
-1d,
defaultBindingMode: BindingMode.OneWay
);
public double Height{
get { return (double)GetValue(HeightProperty); }
set { SetValue(HeightProperty, value); }
}
public static BindableProperty IsEnabledProperty = BindableProperty.Create(
nameof(IsEnabled),
typeof(bool),
typeof(CellBase),
true,
defaultBindingMode: BindingMode.OneWay
);
public bool IsEnabled{
get { return (bool)GetValue(IsEnabledProperty); }
set { SetValue(IsEnabledProperty, value); }
}
/// <summary>
/// Gets or sets the section.
/// </summary>
/// <value>The section.</value>
public Section Section { get; set; }
public IImageSource Source => IconSource;
public bool IsLoading { get; set; }
public bool IsAnimationPlaying { get; set; }
public void UpdateIsLoading(bool isLoading)
{
IsLoading = isLoading;
}
public void SetEnabledAppearance(bool isEnabled)
{
Handler?.Invoke(nameof(SetEnabledAppearance));
}
public virtual void Reload()
{
if (Section == null)
{
return;
}
var index = Section.IndexOf(this);
if (index < 0)
{
return;
}
// raise replase event manually.
var temp = Section[index];
Section[index] = temp;
}
#if ANDROID
// This is used by ListView to pass data to the GetCell call
// Ideally we can pass these as arguments to ToHandler
// But we'll do that in a different smaller more targeted PR
internal Android.Views.View ConvertView { get; set; }
#elif IOS || MACCATALYST
internal UIKit.UITableViewCell ReusableCell { get; set; }
internal Queue<UIKit.UITableViewCell> ReusableCellQueue { get; } = new Queue<UIKit.UITableViewCell>();
internal UIKit.UITableView TableView { get; set; }
#endif
}
================================================
FILE: SettingsView/Cells/CheckboxCell.cs
================================================
using System;
namespace AiForms.Settings;
/// <summary>
/// Checkbox cell.
/// </summary>
public class CheckboxCell:CellBase
{
/// <summary>
/// The checked property.
/// </summary>
public static BindableProperty CheckedProperty =
BindableProperty.Create(
nameof(Checked),
typeof(bool),
typeof(CheckboxCell),
default(bool),
defaultBindingMode: BindingMode.TwoWay
);
/// <summary>
/// Gets or sets a value indicating whether this <see cref="T:AiForms.Renderers.CheckboxCell"/> is checked.
/// </summary>
/// <value><c>true</c> if checked; otherwise, <c>false</c>.</value>
public bool Checked {
get { return (bool)GetValue(CheckedProperty); }
set { SetValue(CheckedProperty, value); }
}
/// <summary>
/// The accent color property.
/// </summary>
public static BindableProperty AccentColorProperty =
BindableProperty.Create(
nameof(AccentColor),
typeof(Color),
typeof(CheckboxCell),
default(Color),
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets the color of the accent.
/// </summary>
/// <value>The color of the accent.</value>
public Color AccentColor {
get { return (Color)GetValue(AccentColorProperty); }
set { SetValue(AccentColorProperty, value); }
}
}
================================================
FILE: SettingsView/Cells/CommandCell.cs
================================================
using System;
using System.Windows.Input;
namespace AiForms.Settings;
/// <summary>
/// Command cell.
/// </summary>
public class CommandCell:LabelCell
{
/// <summary>
/// The command property.
/// </summary>
public static BindableProperty CommandProperty =
BindableProperty.Create(
nameof(Command),
typeof(ICommand),
typeof(CommandCell),
default(ICommand),
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets the command.
/// </summary>
/// <value>The command.</value>
public ICommand Command {
get { return (ICommand)GetValue(CommandProperty); }
set { SetValue(CommandProperty, value); }
}
/// <summary>
/// The command parameter property.
/// </summary>
public static BindableProperty CommandParameterProperty =
BindableProperty.Create(
nameof(CommandParameter),
typeof(object),
typeof(CommandCell),
default(object),
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets the command parameter.
/// </summary>
/// <value>The command parameter.</value>
public object CommandParameter {
get { return (object)GetValue(CommandParameterProperty); }
set { SetValue(CommandParameterProperty, value); }
}
/// <summary>
/// The keep selected until back property.
/// </summary>
public static BindableProperty KeepSelectedUntilBackProperty =
BindableProperty.Create(
nameof(KeepSelectedUntilBack),
typeof(bool),
typeof(CommandCell),
default(bool),
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets a value indicating whether this <see cref="T:AiForms.Renderers.CommandCell"/> keep selected
/// until back.
/// </summary>
/// <value><c>true</c> if keep selected until back; otherwise, <c>false</c>.</value>
public bool KeepSelectedUntilBack {
get { return (bool)GetValue(KeepSelectedUntilBackProperty); }
set { SetValue(KeepSelectedUntilBackProperty, value); }
}
public static BindableProperty HideArrowIndicatorProperty = BindableProperty.Create(
nameof(HideArrowIndicator),
typeof(bool),
typeof(CommandCell),
default(bool),
defaultBindingMode: BindingMode.OneWay
);
public bool HideArrowIndicator
{
get { return (bool)GetValue(HideArrowIndicatorProperty); }
set { SetValue(HideArrowIndicatorProperty, value); }
}
}
================================================
FILE: SettingsView/Cells/CustomCell.cs
================================================
using System;
using System.Windows.Input;
namespace AiForms.Settings;
/// <summary>
/// Custom cell.
/// </summary>
[ContentProperty("Content")]
public class CustomCell:CommandCell
{
/// <summary>
/// The show arrow indicator property.
/// </summary>
public static BindableProperty ShowArrowIndicatorProperty =
BindableProperty.Create(
nameof(ShowArrowIndicator),
typeof(bool),
typeof(CustomCell),
default(bool),
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets a value indicating whether this <see cref="T:AiForms.Renderers.CustomCell"/> show arrow indicator.
/// </summary>
/// <value><c>true</c> if show arrow indicator; otherwise, <c>false</c>.</value>
public bool ShowArrowIndicator {
get { return (bool)GetValue(ShowArrowIndicatorProperty); }
set { SetValue(ShowArrowIndicatorProperty, value); }
}
/// <summary>
/// The content property.
/// </summary>
public static BindableProperty ContentProperty =
BindableProperty.Create(
nameof(Content),
typeof(View),
typeof(CustomCell),
default(View),
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets the content.
/// </summary>
/// <value>The content.</value>
public View Content {
get { return (View)GetValue(ContentProperty); }
set { SetValue(ContentProperty, value); }
}
/// <summary>
/// The is selectable property.
/// </summary>
public static BindableProperty IsSelectableProperty =
BindableProperty.Create(
nameof(IsSelectable),
typeof(bool),
typeof(CustomCell),
true,
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets a value indicating whether this <see cref="T:AiForms.Renderers.CustomCell"/> is selectable.
/// </summary>
/// <value><c>true</c> if is selectable; otherwise, <c>false</c>.</value>
public bool IsSelectable {
get { return (bool)GetValue(IsSelectableProperty); }
set { SetValue(IsSelectableProperty, value); }
}
/// <summary>
/// The is measure once property.
/// </summary>
public static BindableProperty IsMeasureOnceProperty =
BindableProperty.Create(
nameof(IsMeasureOnce),
typeof(bool),
typeof(CustomCell),
default(bool),
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets a value indicating whether this <see cref="T:AiForms.Renderers.CustomCell"/> is measure once.
/// </summary>
/// <value><c>true</c> if is measure once; otherwise, <c>false</c>.</value>
public bool IsMeasureOnce {
get { return (bool)GetValue(IsMeasureOnceProperty); }
set { SetValue(IsMeasureOnceProperty, value); }
}
/// <summary>
/// The use full size property.
/// </summary>
public static BindableProperty UseFullSizeProperty =
BindableProperty.Create(
nameof(UseFullSize),
typeof(bool),
typeof(CustomCell),
default(bool),
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets a value indicating whether this <see cref="T:AiForms.Renderers.CustomCell"/> use full size.
/// </summary>
/// <value><c>true</c> if use full size; otherwise, <c>false</c>.</value>
public bool UseFullSize {
get { return (bool)GetValue(UseFullSizeProperty); }
set { SetValue(UseFullSizeProperty, value); }
}
public static BindableProperty LongCommandProperty =
BindableProperty.Create(
nameof(LongCommand),
typeof(ICommand),
typeof(CustomCell),
default(ICommand),
defaultBindingMode: BindingMode.OneWay
);
public ICommand LongCommand
{
get { return (ICommand)GetValue(LongCommandProperty); }
set { SetValue(LongCommandProperty, value); }
}
/// <summary>
/// Ons the binding context changed.
/// </summary>
protected override void OnBindingContextChanged()
{
base.OnBindingContextChanged();
if(Content != null)
{
Content.BindingContext = BindingContext;
}
}
/// <summary>
/// Ons the parent set.
/// </summary>
protected override void OnParentSet()
{
base.OnParentSet();
if(Content != null)
{
Content.Parent = Parent;
}
}
public void SendLongCommand()
{
if (LongCommand == null)
{
return;
}
if (LongCommand.CanExecute(BindingContext))
{
LongCommand.Execute(BindingContext);
}
}
internal bool IsForceLayout = false;
public override void Reload()
{
IsForceLayout = true;
base.Reload();
}
}
================================================
FILE: SettingsView/Cells/DatePickerCell.cs
================================================
using System;
namespace AiForms.Settings;
/// <summary>
/// Date picker cell.
/// </summary>
public class DatePickerCell:LabelCell
{
/// <summary>
/// The date property.
/// </summary>
public static BindableProperty DateProperty =
BindableProperty.Create(
nameof(Date),
typeof(DateTime?),
typeof(DatePickerCell),
default(DateTime?),
defaultBindingMode: BindingMode.TwoWay
);
/// <summary>
/// Gets or sets the date.
/// </summary>
/// <value>The date.</value>
public DateTime? Date {
get { return (DateTime?)GetValue(DateProperty); }
set { SetValue(DateProperty, value); }
}
public static BindableProperty InitialDateProperty = BindableProperty.Create(
nameof(InitialDate),
typeof(DateTime),
typeof(DatePickerCell),
new DateTime(2000, 1, 1),
defaultBindingMode: BindingMode.OneWay
);
public DateTime InitialDate {
get { return (DateTime)GetValue(InitialDateProperty); }
set { SetValue(InitialDateProperty, value); }
}
/// <summary>
/// The maximum date property.
/// </summary>
public static BindableProperty MaximumDateProperty =
BindableProperty.Create(
nameof(MaximumDate),
typeof(DateTime),
typeof(DatePickerCell),
new DateTime(2100, 12, 31),
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets the maximum date.
/// </summary>
/// <value>The maximum date.</value>
public DateTime MaximumDate {
get { return (DateTime)GetValue(MaximumDateProperty); }
set { SetValue(MaximumDateProperty, value); }
}
/// <summary>
/// The minimum date property.
/// </summary>
public static BindableProperty MinimumDateProperty =
BindableProperty.Create(
nameof(MinimumDate),
typeof(DateTime),
typeof(DatePickerCell),
new DateTime(1900, 1, 1),
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets the minimum date.
/// </summary>
/// <value>The minimum date.</value>
public DateTime MinimumDate {
get { return (DateTime)GetValue(MinimumDateProperty); }
set { SetValue(MinimumDateProperty, value); }
}
/// <summary>
/// The format property.
/// </summary>
public static BindableProperty FormatProperty =
BindableProperty.Create(
nameof(Format),
typeof(string),
typeof(DatePickerCell),
"d",
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets the format.
/// </summary>
/// <value>The format.</value>
public string Format {
get { return (string)GetValue(FormatProperty); }
set { SetValue(FormatProperty, value); }
}
/// <summary>
/// The today text property.
/// </summary>
public static BindableProperty TodayTextProperty =
BindableProperty.Create(
nameof(TodayText),
typeof(string),
typeof(DatePickerCell),
default(string),
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets the today text.
/// </summary>
/// <value>The today text.</value>
public string TodayText {
get { return (string)GetValue(TodayTextProperty); }
set { SetValue(TodayTextProperty, value); }
}
public static BindableProperty IsAndroidSpinnerStyleProperty = BindableProperty.Create(
nameof(IsAndroidSpinnerStyle),
typeof(bool),
typeof(DatePickerCell),
default(bool),
defaultBindingMode: BindingMode.OneWay
);
public bool IsAndroidSpinnerStyle {
get { return (bool)GetValue(IsAndroidSpinnerStyleProperty); }
set { SetValue(IsAndroidSpinnerStyleProperty, value); }
}
public static BindableProperty AndroidButtonColorProperty = BindableProperty.Create(
nameof(AndroidButtonColor),
typeof(Color),
typeof(DatePickerCell),
default(Color),
defaultBindingMode: BindingMode.OneWay
);
public Color AndroidButtonColor {
get { return (Color)GetValue(AndroidButtonColorProperty); }
set { SetValue(AndroidButtonColorProperty, value); }
}
private new string ValueText { get; set; }
}
================================================
FILE: SettingsView/Cells/EntryCell.cs
================================================
using System;
using System.ComponentModel;
using System.Windows.Input;
using Microsoft.Maui.Converters;
namespace AiForms.Settings;
/// <summary>
/// Entry cell.
/// </summary>
public class EntryCell:CellBase,IEntryCellController
{
/// <summary>
/// The value text property.
/// </summary>
public static BindableProperty ValueTextProperty =
BindableProperty.Create(
nameof(ValueText),
typeof(string),
typeof(EntryCell),
default(string),
defaultBindingMode: BindingMode.TwoWay,
propertyChanging:ValueTextPropertyChanging
);
static void ValueTextPropertyChanging(BindableObject bindable, object oldValue, object newValue)
{
var maxlength = (int)bindable.GetValue(MaxLengthProperty);
if (maxlength < 0) return;
var newString = newValue?.ToString() ?? string.Empty;
if (newString.Length > maxlength) {
var oldString = oldValue?.ToString() ?? string.Empty;
if(oldString.Length > maxlength){
var trimStr = oldString.Substring(0, maxlength);
bindable.SetValue(ValueTextProperty, trimStr);
}
else{
bindable.SetValue(ValueTextProperty, oldString);
}
}
}
/// <summary>
/// Gets or sets the value text.
/// </summary>
/// <value>The value text.</value>
public string ValueText {
get { return (string)GetValue(ValueTextProperty); }
set { SetValue(ValueTextProperty, value); }
}
/// <summary>
/// The max length property.
/// </summary>
public static BindableProperty MaxLengthProperty =
BindableProperty.Create(
nameof(MaxLength),
typeof(int),
typeof(EntryCell),
-1,
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets the length of the max.
/// </summary>
/// <value>The length of the max.</value>
public int MaxLength {
get { return (int)GetValue(MaxLengthProperty); }
set { SetValue(MaxLengthProperty, value); }
}
/// <summary>
/// The value text color property.
/// </summary>
public static BindableProperty ValueTextColorProperty =
BindableProperty.Create(
nameof(ValueTextColor),
typeof(Color),
typeof(EntryCell),
default(Color),
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets the color of the value text.
/// </summary>
/// <value>The color of the value text.</value>
public Color ValueTextColor {
get { return (Color)GetValue(ValueTextColorProperty); }
set { SetValue(ValueTextColorProperty, value); }
}
/// <summary>
/// The value text font size property.
/// </summary>
public static BindableProperty ValueTextFontSizeProperty =
BindableProperty.Create(
nameof(ValueTextFontSize),
typeof(double),
typeof(EntryCell),
-1.0d,
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets the size of the value text font.
/// </summary>
/// <value>The size of the value text font.</value>
[TypeConverter(typeof(FontSizeConverter))]
public double ValueTextFontSize {
get { return (double)GetValue(ValueTextFontSizeProperty); }
set { SetValue(ValueTextFontSizeProperty, value); }
}
public static BindableProperty ValueTextFontFamilyProperty = BindableProperty.Create(
nameof(ValueTextFontFamily),
typeof(string),
typeof(EntryCell),
default(string),
defaultBindingMode: BindingMode.OneWay
);
public string ValueTextFontFamily {
get { return (string)GetValue(ValueTextFontFamilyProperty); }
set { SetValue(ValueTextFontFamilyProperty, value); }
}
public static BindableProperty ValueTextFontAttributesProperty = BindableProperty.Create(
nameof(ValueTextFontAttributes),
typeof(FontAttributes?),
typeof(EntryCell),
null,
defaultBindingMode: BindingMode.OneWay
);
public FontAttributes? ValueTextFontAttributes {
get { return (FontAttributes?)GetValue(ValueTextFontAttributesProperty); }
set { SetValue(ValueTextFontAttributesProperty, value); }
}
/// <summary>
/// The keyboard property.
/// </summary>
public static BindableProperty KeyboardProperty =
BindableProperty.Create(
nameof(Keyboard),
typeof(Keyboard),
typeof(EntryCell),
Keyboard.Default,
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets the keyboard.
/// </summary>
/// <value>The keyboard.</value>
[TypeConverter(typeof(KeyboardTypeConverter))]
public Keyboard Keyboard {
get { return (Keyboard)GetValue(KeyboardProperty); }
set { SetValue(KeyboardProperty, value); }
}
/// <summary>
/// Occurs when completed.
/// </summary>
public event EventHandler Completed;
/// <summary>
/// Sends the completed.
/// </summary>
public void SendCompleted()
{
Completed?.Invoke(this, EventArgs.Empty);
if(CompletedCommand != null)
{
if(CompletedCommand.CanExecute(null))
{
CompletedCommand.Execute(null);
}
}
}
/// <summary>
/// The completed command property.
/// </summary>
public static BindableProperty CompletedCommandProperty =
BindableProperty.Create(
nameof(CompletedCommand),
typeof(ICommand),
typeof(EntryCell),
default(ICommand),
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets the completed command.
/// </summary>
/// <value>The completed command.</value>
public ICommand CompletedCommand {
get { return (ICommand)GetValue(CompletedCommandProperty); }
set { SetValue(CompletedCommandProperty, value); }
}
/// <summary>
/// The placeholder property.
/// </summary>
public static BindableProperty PlaceholderProperty =
BindableProperty.Create(
nameof(Placeholder),
typeof(string),
typeof(EntryCell),
default(string),
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets the placeholder.
/// </summary>
/// <value>The placeholder.</value>
public string Placeholder {
get { return (string)GetValue(PlaceholderProperty); }
set { SetValue(PlaceholderProperty, value); }
}
public static BindableProperty PlaceholderColorProperty = BindableProperty.Create(
nameof(PlaceholderColor),
typeof(Color),
typeof(EntryCell),
default(Color),
defaultBindingMode: BindingMode.OneWay
);
public Color PlaceholderColor {
get { return (Color)GetValue(PlaceholderColorProperty); }
set { SetValue(PlaceholderColorProperty, value); }
}
/// <summary>
/// The text alignment property.
/// </summary>
public static BindableProperty TextAlignmentProperty =
BindableProperty.Create(
nameof(TextAlignment),
typeof(TextAlignment),
typeof(EntryCell),
TextAlignment.End,
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets the text alignment.
/// </summary>
/// <value>The text alignment.</value>
public TextAlignment TextAlignment
{
get { return (TextAlignment)GetValue(TextAlignmentProperty); }
set { SetValue(TextAlignmentProperty, value); }
}
/// <summary>
/// The accent color property.
/// </summary>
public static BindableProperty AccentColorProperty =
BindableProperty.Create(
nameof(AccentColor),
typeof(Color),
typeof(EntryCell),
default(Color),
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets the color of the accent.
/// </summary>
/// <value>The color of the accent.</value>
public Color AccentColor {
get { return (Color)GetValue(AccentColorProperty); }
set { SetValue(AccentColorProperty, value); }
}
/// <summary>
/// The is password property.
/// </summary>
public static BindableProperty IsPasswordProperty =
BindableProperty.Create(
nameof(IsPassword),
typeof(bool),
typeof(EntryCell),
default(bool),
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets a value indicating whether this <see cref="T:AiForms.Renderers.EntryCell"/> is password.
/// </summary>
/// <value><c>true</c> if is password; otherwise, <c>false</c>.</value>
public bool IsPassword {
get { return (bool)GetValue(IsPasswordProperty); }
set { SetValue(IsPasswordProperty, value); }
}
public static BindableProperty ShowDoneButtonOnIOSProperty =
BindableProperty.Create(
nameof(ShowDoneButtonOnIOS),
typeof(bool),
typeof(EntryCell),
default(bool),
defaultBindingMode: BindingMode.OneWay
);
public bool ShowDoneButtonOnIOS
{
get { return (bool)GetValue(ShowDoneButtonOnIOSProperty); }
set { SetValue(ShowDoneButtonOnIOSProperty, value); }
}
internal event EventHandler Focused;
/// <summary>
/// Sets the focus.
/// </summary>
public void SetFocus()
{
Focused?.Invoke(this,EventArgs.Empty);
}
}
================================================
FILE: SettingsView/Cells/LabelCell.cs
================================================
using System;
using System.ComponentModel;
namespace AiForms.Settings;
/// <summary>
/// Label cell.
/// </summary>
public class LabelCell:CellBase
{
/// <summary>
/// The value text property.
/// </summary>
public static BindableProperty ValueTextProperty =
BindableProperty.Create(
nameof(ValueText),
typeof(string),
typeof(LabelCell),
default(string),
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets the value text.
/// </summary>
/// <value>The value text.</value>
public string ValueText {
get { return (string)GetValue(ValueTextProperty); }
set { SetValue(ValueTextProperty, value); }
}
/// <summary>
/// The value text color property.
/// </summary>
public static BindableProperty ValueTextColorProperty =
BindableProperty.Create(
nameof(ValueTextColor),
typeof(Color),
typeof(LabelCell),
KnownColor.Default,
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets the color of the value text.
/// </summary>
/// <value>The color of the value text.</value>
public Color ValueTextColor {
get { return (Color)GetValue(ValueTextColorProperty); }
set { SetValue(ValueTextColorProperty, value); }
}
/// <summary>
/// The value text font size property.
/// </summary>
public static BindableProperty ValueTextFontSizeProperty =
BindableProperty.Create(
nameof(ValueTextFontSize),
typeof(double),
typeof(LabelCell),
-1.0d,
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets the size of the value text font.
/// </summary>
/// <value>The size of the value text font.</value>
[TypeConverter(typeof(FontSizeConverter))]
public double ValueTextFontSize {
get { return (double)GetValue(ValueTextFontSizeProperty); }
set { SetValue(ValueTextFontSizeProperty, value); }
}
public static BindableProperty ValueTextFontFamilyProperty = BindableProperty.Create(
nameof(ValueTextFontFamily),
typeof(string),
typeof(LabelCell),
default(string),
defaultBindingMode: BindingMode.OneWay
);
public string ValueTextFontFamily {
get { return (string)GetValue(ValueTextFontFamilyProperty); }
set { SetValue(ValueTextFontFamilyProperty, value); }
}
public static BindableProperty ValueTextFontAttributesProperty = BindableProperty.Create(
nameof(ValueTextFontAttributes),
typeof(FontAttributes?),
typeof(LabelCell),
null,
defaultBindingMode: BindingMode.OneWay
);
public FontAttributes? ValueTextFontAttributes {
get { return (FontAttributes?)GetValue(ValueTextFontAttributesProperty); }
set { SetValue(ValueTextFontAttributesProperty, value); }
}
/// <summary>
/// The ignore use description as value property.
/// </summary>
public static BindableProperty IgnoreUseDescriptionAsValueProperty =
BindableProperty.Create(
nameof(IgnoreUseDescriptionAsValue),
typeof(bool),
typeof(LabelCell),
false,
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets a value indicating whether this <see cref="T:AiForms.Renderers.LabelCell"/> ignore use
/// description as value.
/// </summary>
/// <value><c>true</c> if ignore use description as value; otherwise, <c>false</c>.</value>
public bool IgnoreUseDescriptionAsValue
{
get { return (bool)GetValue(IgnoreUseDescriptionAsValueProperty); }
set { SetValue(IgnoreUseDescriptionAsValueProperty, value); }
}
}
================================================
FILE: SettingsView/Cells/NumberPickerCell.cs
================================================
using System;
using System.Windows.Input;
namespace AiForms.Settings;
/// <summary>
/// Number picker cell.
/// </summary>
public class NumberPickerCell:LabelCell
{
/// <summary>
/// The number property.
/// </summary>
public static BindableProperty NumberProperty =
BindableProperty.Create(
nameof(Number),
typeof(int?),
typeof(NumberPickerCell),
null,
defaultBindingMode: BindingMode.TwoWay
);
/// <summary>
/// Gets or sets the number.
/// </summary>
/// <value>The number.</value>
public int? Number {
get { return (int?)GetValue(NumberProperty); }
set { SetValue(NumberProperty, value); }
}
/// <summary>
/// The minimum property.
/// </summary>
public static BindableProperty MinProperty =
BindableProperty.Create(
nameof(Min),
typeof(int),
typeof(NumberPickerCell),
0,
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets the minimum.
/// </summary>
/// <value>The minimum.</value>
public int Min {
get { return (int)GetValue(MinProperty); }
set { SetValue(MinProperty, value); }
}
/// <summary>
/// The max property.
/// </summary>
public static BindableProperty MaxProperty =
BindableProperty.Create(
nameof(Max),
typeof(int),
typeof(NumberPickerCell),
9999,
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets the max.
/// </summary>
/// <value>The max.</value>
public int Max {
get { return (int)GetValue(MaxProperty); }
set { SetValue(MaxProperty, value); }
}
/// <summary>
/// The picker title property.
/// </summary>
public static BindableProperty PickerTitleProperty =
BindableProperty.Create(
nameof(PickerTitle),
typeof(string),
typeof(NumberPickerCell),
default(string),
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets the picker title.
/// </summary>
/// <value>The picker title.</value>
public string PickerTitle {
get { return (string)GetValue(PickerTitleProperty); }
set { SetValue(PickerTitleProperty, value); }
}
/// <summary>
/// The selected command property.
/// </summary>
public static BindableProperty SelectedCommandProperty =
BindableProperty.Create(
nameof(SelectedCommand),
typeof(ICommand),
typeof(NumberPickerCell),
default(ICommand),
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets the selected command.
/// </summary>
/// <value>The selected command.</value>
public ICommand SelectedCommand {
get { return (ICommand)GetValue(SelectedCommandProperty); }
set { SetValue(SelectedCommandProperty, value); }
}
public static BindableProperty UnitProperty
= BindableProperty.Create
(nameof (Unit),
typeof (string),
typeof (NumberPickerCell),
"",
defaultBindingMode: BindingMode.OneWay
);
public string Unit
{
get { return (string) this.GetValue(UnitProperty); }
set { this.SetValue(UnitProperty, value); }
}
private new string ValueText { get; set; }
}
================================================
FILE: SettingsView/Cells/PickerCell.cs
================================================
using System;
using System.Collections;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Linq;
using System.Linq.Expressions;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Windows.Input;
using AiForms.Settings.Pages;
using Microsoft.Maui.Controls;
namespace AiForms.Settings;
/// <summary>
/// Picker cell.
/// </summary>
public class PickerCell : CommandCell
{
/// <summary>
/// The page title property.
/// </summary>
public static BindableProperty PageTitleProperty =
BindableProperty.Create(
nameof(PageTitle),
typeof(string),
typeof(PickerCell),
default(string),
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets the page title.
/// </summary>
/// <value>The page title.</value>
public string PageTitle {
get { return (string)GetValue(PageTitleProperty); }
set { SetValue(PageTitleProperty, value); }
}
/// <summary>
/// The items source property.
/// </summary>
public static BindableProperty ItemsSourceProperty =
BindableProperty.Create(
nameof(ItemsSource),
typeof(IList),
typeof(PickerCell),
default(IList),
defaultBindingMode: BindingMode.OneWay,
propertyChanging: ItemsSourceChanging
);
/// <summary>
/// Gets or sets the items source.
/// </summary>
/// <value>The items source.</value>
public IList ItemsSource {
get { return (IList)GetValue(ItemsSourceProperty); }
set { SetValue(ItemsSourceProperty, value); }
}
/// <summary>
/// The display member property.
/// </summary>
public static BindableProperty DisplayMemberProperty =
BindableProperty.Create(
nameof(DisplayMember),
typeof(string),
typeof(PickerCell),
default(string),
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets the display member.
/// </summary>
/// <value>The display member.</value>
public string DisplayMember {
get { return (string)GetValue(DisplayMemberProperty); }
set { SetValue(DisplayMemberProperty, value); }
}
/// <summary>
/// The sub display member property.
/// </summary>
public static BindableProperty SubDisplayMemberProperty =
BindableProperty.Create(
nameof(SubDisplayMember),
typeof(string),
typeof(PickerCell),
default(string),
defaultBindingMode: BindingMode.OneWay
);
/// <summary>
/// Gets or sets the sub display member.
/// </summary>
/// <value>The sub display member.</value>
public string SubDisplayMember {
get { return (string)GetValue(SubDisplayMemberProperty); }
set { SetValue(SubDisplayMemberProperty, value); }
}
/// <summary>
/// The selected items property.
/// </summary>
public static BindableProperty SelectedItemsProperty =
BindableProperty.Create(
nameof(SelectedItems),
typeof(IList),
typeof(PickerCell),
default(IList),
defaultBindingMode: BindingMode.TwoWay
);
/// <summary>
/// Gets or sets the selected items.
/// </summary>
/// <value>The selected items.</value>
public IList SelectedItems {
get { return (IList)GetValue(SelectedItemsProperty); }
set { SetValue(SelectedItemsProperty, value); }
}
/// <summary>
/// The selected item property.
/// </summary>
public static BindableProperty SelectedItemProperty =
gitextract_6e89phxe/ ├── .github/ │ ├── FUNDING.yml │ └── ISSUE_TEMPLATE/ │ ├── bug_report.md │ └── feature_request.md ├── .gitignore ├── AiForms.Maui.SettingsView.slnx ├── CONTRIBUTING-ja.md ├── CONTRIBUTING.md ├── LICENSE.txt ├── README-ja.md ├── README.md ├── Sample/ │ ├── App.xaml │ ├── App.xaml.cs │ ├── MauiProgram.cs │ ├── Platforms/ │ │ ├── Android/ │ │ │ ├── AndroidManifest.xml │ │ │ ├── MainActivity.cs │ │ │ ├── MainApplication.cs │ │ │ └── Resources/ │ │ │ └── values/ │ │ │ └── colors.xml │ │ └── iOS/ │ │ ├── AppDelegate.cs │ │ ├── Info.plist │ │ └── Program.cs │ ├── Properties/ │ │ └── launchSettings.json │ ├── Resources/ │ │ ├── Raw/ │ │ │ └── AboutAssets.txt │ │ └── Styles/ │ │ ├── Colors.xaml │ │ └── Styles.xaml │ ├── Sample.csproj │ ├── ViewModels/ │ │ ├── CustomHeaderViewModel.cs │ │ ├── DynamicHeaderSizeViewModel.cs │ │ ├── HeaderSurveyViewModel.cs │ │ ├── ListViewModel.cs │ │ ├── MainViewModel.cs │ │ ├── SurveyViewModel.cs │ │ └── TapSurveyViewModel.cs │ └── Views/ │ ├── Cells/ │ │ ├── MyCellA.xaml │ │ ├── MyCellA.xaml.cs │ │ ├── MyCellB.xaml │ │ ├── MyCellB.xaml.cs │ │ ├── MyCellC.xaml │ │ ├── MyCellC.xaml.cs │ │ ├── SliderCell.xaml │ │ └── SliderCell.xaml.cs │ ├── CustomHeaderPage.xaml │ ├── CustomHeaderPage.xaml.cs │ ├── DynamicHeaderSizePage.xaml │ ├── DynamicHeaderSizePage.xaml.cs │ ├── HeaderSurveyPage.xaml │ ├── HeaderSurveyPage.xaml.cs │ ├── ListPage.xaml │ ├── ListPage.xaml.cs │ ├── MainPage.xaml │ ├── MainPage.xaml.cs │ ├── MyNavigationPage.cs │ ├── SurveyPage.xaml │ ├── SurveyPage.xaml.cs │ ├── TapSurveyPage.xaml │ └── TapSurveyPage.xaml.cs ├── SettingsView/ │ ├── BindableBase.cs │ ├── CellPropertyChangedEventHandler.cs │ ├── Cells/ │ │ ├── ButtonCell.cs │ │ ├── CellBase.cs │ │ ├── CheckboxCell.cs │ │ ├── CommandCell.cs │ │ ├── CustomCell.cs │ │ ├── DatePickerCell.cs │ │ ├── EntryCell.cs │ │ ├── LabelCell.cs │ │ ├── NumberPickerCell.cs │ │ ├── PickerCell.cs │ │ ├── RadioCell.cs │ │ ├── SimpleCheckCell.cs │ │ ├── SwitchCell.cs │ │ ├── TextPickerCell.cs │ │ └── TimePickerCell.cs │ ├── DropEventArgs.cs │ ├── Extensions/ │ │ ├── EnumerableExtension.cs │ │ ├── FontExtension.cs │ │ ├── HandlerCleanUpHelper.cs │ │ └── ViewExtension.cs │ ├── Handlers/ │ │ ├── ButtonCell/ │ │ │ ├── ButtonCellHandler.Android.cs │ │ │ ├── ButtonCellHandler.Net.cs │ │ │ ├── ButtonCellHandler.cs │ │ │ └── ButtonCellHandler.iOS.cs │ │ ├── CellBase/ │ │ │ ├── CellBaseHandler.Android.cs │ │ │ ├── CellBaseHandler.Net.cs │ │ │ ├── CellBaseHandler.cs │ │ │ ├── CellBaseHandler.iOS.cs │ │ │ └── CellBaseView.Net.cs │ │ ├── CheckboxCell/ │ │ │ ├── CheckboxCellHandler.Android.cs │ │ │ ├── CheckboxCellHandler.Net.cs │ │ │ ├── CheckboxCellHandler.cs │ │ │ └── CheckboxCellHandler.iOS.cs │ │ ├── CommandCell/ │ │ │ ├── CommandCellHandler.Android.cs │ │ │ ├── CommandCellHandler.Net.cs │ │ │ ├── CommandCellHandler.cs │ │ │ └── CommandCellHandler.iOS.cs │ │ ├── CustomCell/ │ │ │ ├── CustomCellHandler.Android.cs │ │ │ ├── CustomCellHandler.Net.cs │ │ │ ├── CustomCellHandler.cs │ │ │ └── CustomCellHandler.iOS.cs │ │ ├── DatePickerCell/ │ │ │ ├── DatePickerCellHandler.Android.cs │ │ │ ├── DatePickerCellHandler.Net.cs │ │ │ ├── DatePickerCellHandler.cs │ │ │ └── DatePickerCellHandler.iOS.cs │ │ ├── EntryCell/ │ │ │ ├── EntryCellHandler.Android.cs │ │ │ ├── EntryCellHandler.Net.cs │ │ │ ├── EntryCellHandler.cs │ │ │ └── EntryCellHandler.iOS.cs │ │ ├── EntryCellBase/ │ │ │ ├── EntryCellBaseHandler.Android.cs │ │ │ ├── EntryCellBaseHandler.Net.cs │ │ │ ├── EntryCellBaseHandler.cs │ │ │ └── EntryCellBaseHandler.iOS.cs │ │ ├── LabelCell/ │ │ │ ├── LabelCellHandler.Android.cs │ │ │ ├── LabelCellHandler.Net.cs │ │ │ ├── LabelCellHandler.cs │ │ │ └── LabelCellHandler.iOS.cs │ │ ├── LabelCellBase/ │ │ │ ├── LabelCellBaseHandler.Android.cs │ │ │ ├── LabelCellBaseHandler.Net.cs │ │ │ ├── LabelCellBaseHandler.cs │ │ │ └── LabelCellBaseHandler.iOS.cs │ │ ├── NumberPickerCell/ │ │ │ ├── NumberPickerCellHandler.Android.cs │ │ │ ├── NumberPickerCellHandler.Net.cs │ │ │ ├── NumberPickerCellHandler.cs │ │ │ └── NumberPickerCellHandler.iOS.cs │ │ ├── RadioCell/ │ │ │ ├── RadioCellHandler.Android.cs │ │ │ ├── RadioCellHandler.Net.cs │ │ │ ├── RadioCellHandler.cs │ │ │ └── RadioCellHandler.iOS.cs │ │ ├── SettingsViewHandler.Android.cs │ │ ├── SettingsViewHandler.Net.cs │ │ ├── SettingsViewHandler.cs │ │ ├── SettingsViewHandler.iOS.cs │ │ ├── SimpleCheckCell/ │ │ │ ├── SimpleCheckCellHandler.Android.cs │ │ │ ├── SimpleCheckCellHandler.Net.cs │ │ │ ├── SimpleCheckCellHandler.cs │ │ │ └── SimpleCheckCellHandler.iOS.cs │ │ ├── SwitchCell/ │ │ │ ├── SwitchCellHandler.Android.cs │ │ │ ├── SwitchCellHandler.Net.cs │ │ │ ├── SwitchCellHandler.cs │ │ │ └── SwitchCellHandler.iOS.cs │ │ ├── Template/ │ │ │ ├── CellHandler.Android.cs │ │ │ ├── CellHandler.cs │ │ │ └── CellHandler.iOS.cs │ │ ├── TextPickerCell/ │ │ │ ├── TextPickerCellHandler.Android.cs │ │ │ ├── TextPickerCellHandler.Net.cs │ │ │ ├── TextPickerCellHandler.cs │ │ │ └── TextPickerCellHandler.iOS.cs │ │ └── TimePickerCell/ │ │ ├── TimePickerCellHandler.Android.cs │ │ ├── TimePickerCellHandler.Net.cs │ │ ├── TimePickerCellHandler.cs │ │ └── TimePickerCellHandler.iOS.cs │ ├── MauiAppBuilderExtension.cs │ ├── MauiHandlerExtension.cs │ ├── Native/ │ │ ├── Android/ │ │ │ ├── AiRecyclerView.cs │ │ │ ├── Cells/ │ │ │ │ ├── ButtonCellView.cs │ │ │ │ ├── CellBaseView.cs │ │ │ │ ├── CheckboxCellView.cs │ │ │ │ ├── CommandCellView.cs │ │ │ │ ├── CustomCellView.cs │ │ │ │ ├── DatePickerCellView.cs │ │ │ │ ├── EntryCellView.cs │ │ │ │ ├── LabelCellView.cs │ │ │ │ ├── NumberPickerCellView.cs │ │ │ │ ├── RadioCellView.cs │ │ │ │ ├── SimpleCheck.cs │ │ │ │ ├── SimpleCheckCellView.cs │ │ │ │ ├── SwitchCellView.cs │ │ │ │ ├── TextPickerCellView.cs │ │ │ │ └── TimePickerCellView.cs │ │ │ ├── DrawableUtility.cs │ │ │ ├── Extensions/ │ │ │ │ ├── LayoutAlignmentExtensions.cs │ │ │ │ ├── TextAlignmentExtensions.cs │ │ │ │ ├── ViewExtension.cs │ │ │ │ └── ViewHandlerExtension.cs │ │ │ ├── FormsViewContainer.cs │ │ │ ├── HeaderFooterContainer.cs │ │ │ ├── ModelProxy.cs │ │ │ ├── SVItemdecoration.cs │ │ │ ├── SettingsViewLayoutManager.cs │ │ │ ├── SettingsViewRecyclerAdapter.cs │ │ │ └── ViewHolders.cs │ │ └── iOS/ │ │ ├── AiTableView.cs │ │ ├── Cells/ │ │ │ ├── ButtonCellView.cs │ │ │ ├── CellBaseView.cs │ │ │ ├── CheckboxCellView.cs │ │ │ ├── CommandCellView.cs │ │ │ ├── CustomCellContent.cs │ │ │ ├── CustomCellView.cs │ │ │ ├── DatePickerCellView.cs │ │ │ ├── EntryCellView.cs │ │ │ ├── LabelCellView.cs │ │ │ ├── NumberPickerCellView.cs │ │ │ ├── NumberPickerSource.cs │ │ │ ├── RadioCellView.cs │ │ │ ├── SimpleCheckCellView.cs │ │ │ ├── SwitchCellView.cs │ │ │ ├── TextPickerCellView.cs │ │ │ ├── TextPickerSource.cs │ │ │ └── TimePickerCellView.cs │ │ ├── CustomHeaderFooterView.cs │ │ ├── Extensions/ │ │ │ ├── DisposeHelpers.cs │ │ │ ├── NSObjectExtension.cs │ │ │ ├── StackViewAlignmentExtensions.cs │ │ │ ├── TextAlignmentExtensions.cs │ │ │ └── ThicknessExtensions.cs │ │ ├── KeyboardInsetTracker.cs │ │ ├── PaddingLabel.cs │ │ ├── SettingsTableSource.cs │ │ ├── TextFooterView.cs │ │ └── TextHeaderView.cs │ ├── NaturalComparer.cs │ ├── Pages/ │ │ ├── PickerPage.xaml │ │ └── PickerPage.xaml.cs │ ├── Platforms/ │ │ └── Android/ │ │ └── Resources/ │ │ ├── drawable/ │ │ │ ├── divider.xml │ │ │ └── ic_navigate_next.xml │ │ ├── layout/ │ │ │ ├── cellbaseview.axml │ │ │ ├── contentcell.axml │ │ │ ├── footercell.axml │ │ │ └── headercell.axml │ │ └── values/ │ │ ├── Strings.xml │ │ ├── attrs.xml │ │ └── styles.xml │ ├── Section.cs │ ├── SectionBase.cs │ ├── SettingsModel.cs │ ├── SettingsRoot.cs │ ├── SettingsView.DefineProperites.cs │ ├── SettingsView.cs │ ├── SettingsView.csproj │ ├── SettingsViewConfiguration.cs │ └── SizeTypeConverter.cs └── global.json
SYMBOL INDEX (1199 symbols across 185 files)
FILE: Sample/App.xaml.cs
class App (line 3) | public partial class App : Application
method App (line 5) | public App()
FILE: Sample/MauiProgram.cs
class MauiProgram (line 12) | public static class MauiProgram
method CreateMauiApp (line 14) | public static MauiApp CreateMauiApp()
FILE: Sample/Platforms/Android/MainActivity.cs
class MainActivity (line 11) | [Activity(Theme = "@style/Maui.SplashTheme", MainLauncher = true, Config...
method OnCreate (line 14) | protected override void OnCreate(Bundle savedInstanceState)
FILE: Sample/Platforms/Android/MainApplication.cs
class MainApplication (line 6) | [Application]
method MainApplication (line 9) | public MainApplication(IntPtr handle, JniHandleOwnership ownership)
method CreateMauiApp (line 14) | protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiAp...
FILE: Sample/Platforms/iOS/AppDelegate.cs
class AppDelegate (line 5) | [Register("AppDelegate")]
method CreateMauiApp (line 8) | protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiAp...
FILE: Sample/Platforms/iOS/Program.cs
class Program (line 6) | public class Program
method Main (line 9) | static void Main(string[] args)
FILE: Sample/ViewModels/CustomHeaderViewModel.cs
class CustomHeaderViewModel (line 6) | public class CustomHeaderViewModel:BindableBase
method CustomHeaderViewModel (line 11) | public CustomHeaderViewModel()
FILE: Sample/ViewModels/DynamicHeaderSizeViewModel.cs
class DynamicHeaderSizeViewModel (line 3) | public class DynamicHeaderSizeViewModel: BindableBase, IInitializeAsync,...
method InitializeAsync (line 7) | public Task InitializeAsync(INavigationParameters parameters)
method OnAppearing (line 103) | public async void OnAppearing()
method OnDisappearing (line 109) | public void OnDisappearing()
class SampleHeaderModel (line 114) | public class SampleHeaderModel
class SampleDataModel (line 120) | public class SampleDataModel
FILE: Sample/ViewModels/HeaderSurveyViewModel.cs
class HeaderSurveyViewModel (line 6) | public class HeaderSurveyViewModel: BindableBase
method HeaderSurveyViewModel (line 10) | public HeaderSurveyViewModel()
FILE: Sample/ViewModels/ListViewModel.cs
class ListViewModel (line 6) | public class ListViewModel: BindableBase
method ListViewModel (line 10) | public ListViewModel()
FILE: Sample/ViewModels/MainViewModel.cs
class MainViewModel (line 9) | public class MainViewModel: BindableBase
method MainViewModel (line 33) | public MainViewModel(INavigationService navigationService)
class Person (line 82) | public class Person
FILE: Sample/ViewModels/SurveyViewModel.cs
class SurveyViewModel (line 6) | public class SurveyViewModel: BindableBase
method SurveyViewModel (line 14) | public SurveyViewModel()
FILE: Sample/ViewModels/TapSurveyViewModel.cs
class TapSurveyViewModel (line 4) | public class TapSurveyViewModel:BindableBase
method TapSurveyViewModel (line 6) | public TapSurveyViewModel()
FILE: Sample/Views/Cells/MyCellA.xaml.cs
class MyCellA (line 10) | [XamlCompilation(XamlCompilationOptions.Compile)]
method MyCellA (line 13) | public MyCellA()
FILE: Sample/Views/Cells/MyCellB.xaml.cs
class MyCellB (line 10) | [XamlCompilation(XamlCompilationOptions.Compile)]
method MyCellB (line 13) | public MyCellB()
FILE: Sample/Views/Cells/MyCellC.xaml.cs
class MyCellC (line 10) | [XamlCompilation(XamlCompilationOptions.Compile)]
method MyCellC (line 13) | public MyCellC()
FILE: Sample/Views/Cells/SliderCell.xaml.cs
class SliderCell (line 11) | public partial class SliderCell : CustomCell
method SliderCell (line 13) | public SliderCell()
method OnChanged (line 74) | void OnChanged(object sender,ValueChangedEventArgs e)
FILE: Sample/Views/CustomHeaderPage.xaml.cs
class CustomHeaderPage (line 3) | public partial class CustomHeaderPage : ContentPage
method CustomHeaderPage (line 5) | public CustomHeaderPage()
FILE: Sample/Views/DynamicHeaderSizePage.xaml.cs
class DynamicHeaderSizePage (line 9) | public partial class DynamicHeaderSizePage : ContentPage
method DynamicHeaderSizePage (line 11) | public DynamicHeaderSizePage()
FILE: Sample/Views/HeaderSurveyPage.xaml.cs
class HeaderSurveyPage (line 3) | public partial class HeaderSurveyPage : ContentPage
method HeaderSurveyPage (line 5) | public HeaderSurveyPage()
FILE: Sample/Views/ListPage.xaml.cs
class ListPage (line 3) | public partial class ListPage : ContentPage
method ListPage (line 5) | public ListPage()
FILE: Sample/Views/MainPage.xaml.cs
class MainPage (line 6) | public partial class MainPage : ContentPage
method MainPage (line 8) | public MainPage()
method OnBindingContextChanged (line 13) | protected override void OnBindingContextChanged()
method Button_Clicked (line 28) | void Button_Clicked(System.Object sender, System.EventArgs e)
FILE: Sample/Views/MyNavigationPage.cs
class MyNavigationPage (line 4) | public class MyNavigationPage : NavigationPage
method MyNavigationPage (line 6) | public MyNavigationPage()
method MyNavigationPage (line 11) | public MyNavigationPage(Page root) : base(root)
FILE: Sample/Views/SurveyPage.xaml.cs
class SurveyPage (line 9) | public partial class SurveyPage : ContentPage
method SurveyPage (line 11) | public SurveyPage()
FILE: Sample/Views/TapSurveyPage.xaml.cs
class TapSurveyPage (line 3) | public partial class TapSurveyPage : ContentPage
method TapSurveyPage (line 5) | public TapSurveyPage()
method TapGestureRecognizer_Tapped (line 10) | void TapGestureRecognizer_Tapped(System.Object sender, Microsoft.Maui....
method TapGestureRecognizer_Tapped_1 (line 14) | void TapGestureRecognizer_Tapped_1(System.Object sender, Microsoft.Mau...
method TapGestureRecognizer_Tapped_2 (line 18) | void TapGestureRecognizer_Tapped_2(System.Object sender, Microsoft.Mau...
method TapGestureRecognizer_Tapped_3 (line 22) | void TapGestureRecognizer_Tapped_3(System.Object sender, Microsoft.Mau...
method TapGestureRecognizer_Tapped_4 (line 26) | void TapGestureRecognizer_Tapped_4(System.Object sender, Microsoft.Mau...
FILE: SettingsView/BindableBase.cs
class BindableBase (line 8) | public abstract class BindableBase : INotifyPropertyChanged
method SetProperty (line 12) | protected virtual bool SetProperty<T>(ref T storage, T value, [CallerM...
method SetProperty (line 22) | protected virtual bool SetProperty<T>(ref T storage, T value, Action o...
method RaisePropertyChanged (line 33) | protected void RaisePropertyChanged([CallerMemberName] string property...
method OnPropertyChanged (line 38) | protected virtual void OnPropertyChanged(PropertyChangedEventArgs args)
FILE: SettingsView/CellPropertyChangedEventHandler.cs
class CellPropertyChangedEventArgs (line 6) | public class CellPropertyChangedEventArgs : PropertyChangedEventArgs
method CellPropertyChangedEventArgs (line 10) | public CellPropertyChangedEventArgs(string propertyName, Section secti...
FILE: SettingsView/Cells/ButtonCell.cs
class ButtonCell (line 8) | public class ButtonCell:CellBase
FILE: SettingsView/Cells/CellBase.cs
class CellBase (line 7) | public class CellBase: Element, IImageSourcePart
method OnTapped (line 13) | internal void OnTapped()
method UpdateIsLoading (line 453) | public void UpdateIsLoading(bool isLoading)
method SetEnabledAppearance (line 458) | public void SetEnabledAppearance(bool isEnabled)
method Reload (line 463) | public virtual void Reload()
FILE: SettingsView/Cells/CheckboxCell.cs
class CheckboxCell (line 8) | public class CheckboxCell:CellBase
FILE: SettingsView/Cells/CommandCell.cs
class CommandCell (line 9) | public class CommandCell:LabelCell
FILE: SettingsView/Cells/CustomCell.cs
class CustomCell (line 9) | [ContentProperty("Content")]
method OnBindingContextChanged (line 135) | protected override void OnBindingContextChanged()
method OnParentSet (line 147) | protected override void OnParentSet()
method SendLongCommand (line 156) | public void SendLongCommand()
method Reload (line 170) | public override void Reload()
FILE: SettingsView/Cells/DatePickerCell.cs
class DatePickerCell (line 8) | public class DatePickerCell:LabelCell
FILE: SettingsView/Cells/EntryCell.cs
class EntryCell (line 11) | public class EntryCell:CellBase,IEntryCellController
method ValueTextPropertyChanging (line 27) | static void ValueTextPropertyChanging(BindableObject bindable, object...
method SendCompleted (line 174) | public void SendCompleted()
method SetFocus (line 324) | public void SetFocus()
FILE: SettingsView/Cells/LabelCell.cs
class LabelCell (line 9) | public class LabelCell:CellBase
FILE: SettingsView/Cells/NumberPickerCell.cs
class NumberPickerCell (line 9) | public class NumberPickerCell:LabelCell
FILE: SettingsView/Cells/PickerCell.cs
class PickerCell (line 19) | public class PickerCell : CommandCell
method PickerCell (line 416) | public PickerCell()
method GetPage (line 430) | Page GetPage(Element element)
method GetSelectedItemsText (line 439) | internal string GetSelectedItemsText(){
method InvokeCommand (line 475) | internal void InvokeCommand()
method ItemsSourceChanging (line 482) | static void ItemsSourceChanging(BindableObject bindable, object oldVal...
method CreateGetProperty (line 493) | Dictionary<string,Func<object,object>> CreateGetProperty(Type t)
method SetUpPropertyCache (line 516) | void SetUpPropertyCache(IList itemsSource)
method IsBuiltInType (line 534) | bool IsBuiltInType(Type type)
method OnPropertyChanged (line 560) | protected override void OnPropertyChanged([CallerMemberName] string pr...
method UpdateSelectedItems (line 585) | void UpdateSelectedItems()
method UpdateCollectionChanged (line 607) | void UpdateCollectionChanged()
method SelectedItems_CollectionChanged (line 624) | void SelectedItems_CollectionChanged(object sender, NotifyCollectionCh...
method ItemsSourceCollectionChanged (line 629) | void ItemsSourceCollectionChanged(object sender, NotifyCollectionChang...
FILE: SettingsView/Cells/RadioCell.cs
class RadioCell (line 8) | public class RadioCell:CellBase
method SetSelectedValue (line 27) | public static void SetSelectedValue(BindableObject view, object value)
method GetSelectedValue (line 37) | public static object GetSelectedValue(BindableObject view)
FILE: SettingsView/Cells/SimpleCheckCell.cs
class SimpleCheckCell (line 4) | public class SimpleCheckCell: CellBase
FILE: SettingsView/Cells/SwitchCell.cs
class SwitchCell (line 8) | public class SwitchCell:CellBase
FILE: SettingsView/Cells/TextPickerCell.cs
class TextPickerCell (line 11) | public class TextPickerCell:LabelCell
FILE: SettingsView/Cells/TimePickerCell.cs
class TimePickerCell (line 8) | public class TimePickerCell:LabelCell
FILE: SettingsView/DropEventArgs.cs
class DropEventArgs (line 5) | public class DropEventArgs:EventArgs
method DropEventArgs (line 12) | public DropEventArgs(Section section,CellBase cell)
FILE: SettingsView/Extensions/EnumerableExtension.cs
class EnumerableExtension (line 4) | public static class EnumerableExtension
method IndexOf (line 6) | public static int IndexOf<T>(this IEnumerable<T> enumerable, Func<T, b...
FILE: SettingsView/Extensions/FontExtension.cs
class FontExtension (line 7) | public static class FontExtension
method ToFont (line 9) | public static Font ToFont(this string fontFamily, double fontSize, Fon...
FILE: SettingsView/Extensions/HandlerCleanUpHelper.cs
class HandlerCleanUpHelper (line 6) | public static class HandlerCleanUpHelper
method AddCleanUpEvent (line 8) | public static void AddCleanUpEvent(this View view)
FILE: SettingsView/Extensions/ViewExtension.cs
class ViewExtension (line 6) | public static class ViewExtension
method FindMauiContext (line 8) | public static IMauiContext? FindMauiContext(this Element element, bool...
method GetParentsPath (line 22) | public static IEnumerable<Element> GetParentsPath(this Element self)
method IsApplicationOrNull (line 33) | public static bool IsApplicationOrNull(object? element) =>
FILE: SettingsView/Handlers/ButtonCell/ButtonCellHandler.Android.cs
class ButtonCellHandler (line 6) | public partial class ButtonCellHandler : CellBaseHandler<ButtonCell, But...
method MapTitleAlignment (line 16) | private static void MapTitleAlignment(ButtonCellHandler handler, Butto...
method MapCommand (line 21) | private static void MapCommand(ButtonCellHandler handoer, ButtonCell a...
FILE: SettingsView/Handlers/ButtonCell/ButtonCellHandler.Net.cs
class ButtonCellHandler (line 4) | public partial class ButtonCellHandler : CellBaseHandler<ButtonCell, Cel...
FILE: SettingsView/Handlers/ButtonCell/ButtonCellHandler.cs
class ButtonCellHandler (line 4) | public partial class ButtonCellHandler
method ButtonCellHandler (line 8) | public ButtonCellHandler() : base(ButtonMapper, ButtonCommandMapper)
method ButtonCellHandler (line 12) | public ButtonCellHandler(IPropertyMapper mapper = null, CommandMapper ...
FILE: SettingsView/Handlers/ButtonCell/ButtonCellHandler.iOS.cs
class ButtonCellHandler (line 6) | public partial class ButtonCellHandler : CellBaseHandler<ButtonCell, But...
method MapTitleAlignment (line 16) | private static void MapTitleAlignment(ButtonCellHandler handler, Butto...
method MapCommand (line 22) | private static void MapCommand(ButtonCellHandler handler, ButtonCell a...
FILE: SettingsView/Handlers/CellBase/CellBaseHandler.Android.cs
class CellBaseHandler (line 13) | public partial class CellBaseHandler<TvirtualCell, TnativeCell>
class InstanceCreator (line 40) | internal static class InstanceCreator<T1, T2, TInstance>
method CreateInstance (line 44) | private static Func<T1, T2, TInstance> CreateInstance()
method CreatePlatformElement (line 54) | protected override TnativeCell CreatePlatformElement()
method GetCell (line 62) | public virtual TnativeCell GetCell(CellBase item, AView convertView, V...
method MapTitleText (line 81) | private static void MapTitleText(CellBaseHandler<TvirtualCell, Tnative...
method MapTitleColor (line 86) | private static void MapTitleColor(CellBaseHandler<TvirtualCell, Tnativ...
method MapTitleFontSize (line 91) | private static void MapTitleFontSize(CellBaseHandler<TvirtualCell, Tna...
method MapTitleFont (line 96) | private static void MapTitleFont(CellBaseHandler<TvirtualCell, Tnative...
method MapDescriptionText (line 103) | private static void MapDescriptionText(CellBaseHandler<TvirtualCell, T...
method MapDescriptionColor (line 108) | private static void MapDescriptionColor(CellBaseHandler<TvirtualCell, ...
method MapDescriptionFontSize (line 113) | private static void MapDescriptionFontSize(CellBaseHandler<TvirtualCel...
method MapDescriptionFont (line 118) | private static void MapDescriptionFont(CellBaseHandler<TvirtualCell, T...
method MapHintText (line 124) | private static void MapHintText(CellBaseHandler<TvirtualCell, TnativeC...
method MapHintTextColor (line 131) | private static void MapHintTextColor(CellBaseHandler<TvirtualCell, Tna...
method MapHintFontSize (line 136) | private static void MapHintFontSize(CellBaseHandler<TvirtualCell, Tnat...
method MapHintFont (line 143) | private static void MapHintFont(CellBaseHandler<TvirtualCell, TnativeC...
method MapIconSource (line 150) | private static void MapIconSource(CellBaseHandler<TvirtualCell, Tnativ...
method MapIconRadius (line 156) | private static void MapIconRadius(CellBaseHandler<TvirtualCell, Tnativ...
method MapIsEnabled (line 163) | private static void MapIsEnabled(CellBaseHandler<TvirtualCell, Tnative...
method MapBackgroundColor (line 168) | private static void MapBackgroundColor(CellBaseHandler<TvirtualCell, T...
FILE: SettingsView/Handlers/CellBase/CellBaseHandler.Net.cs
class CellBaseHandler (line 4) | public partial class CellBaseHandler<TvirtualCell, TnativeCell>
method CreatePlatformElement (line 9) | protected override TnativeCell CreatePlatformElement()
FILE: SettingsView/Handlers/CellBase/CellBaseHandler.cs
class CellBaseHandler (line 20) | public partial class CellBaseHandler<TvirtualCell, TnativeCell> : Elemen...
method MapSetEnabledAppearance (line 29) | private static void MapSetEnabledAppearance(CellBaseHandler<TvirtualCe...
method CellBaseHandler (line 34) | public CellBaseHandler(): base(BasePropertyMapper, BaseCommandMapper)
method CellBaseHandler (line 38) | public CellBaseHandler(IPropertyMapper? mapper = null, CommandMapper? ...
method SetUpPropertyChanged (line 47) | protected void SetUpPropertyChanged(CellBaseView nativeCell)
method ClearPropertyChanged (line 65) | protected void ClearPropertyChanged(CellBaseView nativeCell)
FILE: SettingsView/Handlers/CellBase/CellBaseHandler.iOS.cs
class CellBaseHandler (line 12) | [Foundation.Preserve(AllMembers = true)]
class InstanceCreator (line 46) | internal static class InstanceCreator<T1, TInstance>
method CreateInstance (line 50) | private static Func<T1, TInstance> CreateInstance()
method CreatePlatformElement (line 59) | protected override TnativeCell CreatePlatformElement()
method DisconnectHandler (line 67) | protected override void DisconnectHandler(TnativeCell platformView)
method ConnectHandler (line 73) | protected override void ConnectHandler(TnativeCell platformView)
method GetCell (line 88) | public virtual TnativeCell GetCell(CellBase item, UITableViewCell reus...
method MapTitleText (line 107) | private static void MapTitleText(CellBaseHandler<TvirtualCell, Tnative...
method MapTitleColor (line 114) | private static void MapTitleColor(CellBaseHandler<TvirtualCell, Tnativ...
method MapTitleFont (line 121) | private static void MapTitleFont(CellBaseHandler<TvirtualCell, Tnative...
method MapDescriptionText (line 129) | private static void MapDescriptionText(CellBaseHandler<TvirtualCell, T...
method MapDescriptionColor (line 137) | private static void MapDescriptionColor(CellBaseHandler<TvirtualCell, ...
method MapDescriptionFont (line 144) | private static void MapDescriptionFont(CellBaseHandler<TvirtualCell, T...
method MapHintText (line 152) | private static void MapHintText(CellBaseHandler<TvirtualCell, TnativeC...
method MapHintTextColor (line 160) | private static void MapHintTextColor(CellBaseHandler<TvirtualCell, Tna...
method MapHintFont (line 167) | private static void MapHintFont(CellBaseHandler<TvirtualCell, TnativeC...
method MapIconRadius (line 175) | private static void MapIconRadius(CellBaseHandler<TvirtualCell, Tnativ...
method MapIconSize (line 183) | private static void MapIconSize(CellBaseHandler<TvirtualCell, TnativeC...
method MapIconSource (line 191) | private static void MapIconSource(CellBaseHandler<TvirtualCell, Tnativ...
method MapIsVisible (line 198) | private static void MapIsVisible(CellBaseHandler<TvirtualCell, Tnative...
method MapIsEnabled (line 205) | private static void MapIsEnabled(CellBaseHandler<TvirtualCell, Tnative...
method MapBackgroundColor (line 212) | private static void MapBackgroundColor(CellBaseHandler<TvirtualCell, T...
FILE: SettingsView/Handlers/CellBase/CellBaseView.Net.cs
class CellBaseView (line 6) | public class CellBaseView
method SetEnabledAppearance (line 10) | public void SetEnabledAppearance(bool enabled)
method CellPropertyChanged (line 14) | public virtual void CellPropertyChanged(object sender, PropertyChanged...
method ParentPropertyChanged (line 18) | public virtual void ParentPropertyChanged(object sender, PropertyChang...
method SectionPropertyChanged (line 22) | public virtual void SectionPropertyChanged(object sender, PropertyChan...
FILE: SettingsView/Handlers/CheckboxCell/CheckboxCellHandler.Android.cs
class CheckboxCellHandler (line 6) | public partial class CheckboxCellHandler : CellBaseHandler<CheckboxCell,...
method MapAccentColor (line 15) | private static void MapAccentColor(CheckboxCellHandler handler, Checkb...
method MapChecked (line 20) | private static void MapChecked(CheckboxCellHandler handler, CheckboxCe...
FILE: SettingsView/Handlers/CheckboxCell/CheckboxCellHandler.Net.cs
class CheckboxCellHandler (line 4) | public partial class CheckboxCellHandler: CellBaseHandler<CheckboxCell, ...
FILE: SettingsView/Handlers/CheckboxCell/CheckboxCellHandler.cs
class CheckboxCellHandler (line 4) | public partial class CheckboxCellHandler
method CheckboxCellHandler (line 8) | public CheckboxCellHandler() : base(CheckboxMapper, CheckboxCommandMap...
method CheckboxCellHandler (line 12) | public CheckboxCellHandler(IPropertyMapper mapper = null, CommandMappe...
FILE: SettingsView/Handlers/CheckboxCell/CheckboxCellHandler.iOS.cs
class CheckboxCellHandler (line 6) | public partial class CheckboxCellHandler : CellBaseHandler<CheckboxCell,...
method MapAccentColor (line 15) | private static void MapAccentColor(CheckboxCellHandler handler, Checkb...
method MapChecked (line 21) | private static void MapChecked(CheckboxCellHandler handler, CheckboxCe...
FILE: SettingsView/Handlers/CommandCell/CommandCellHandler.Android.cs
class CommandCellHandler (line 7) | public partial class CommandCellHandler : LabelCellBaseHandler<CommandCe...
method MapCommand (line 16) | private static void MapCommand(CommandCellHandler handler, CommandCell...
FILE: SettingsView/Handlers/CommandCell/CommandCellHandler.Net.cs
class CommandCellHandler (line 4) | public partial class CommandCellHandler : LabelCellBaseHandler<CommandCe...
FILE: SettingsView/Handlers/CommandCell/CommandCellHandler.cs
class CommandCellHandler (line 4) | public partial class CommandCellHandler
method CommandCellHandler (line 8) | public CommandCellHandler() : base(CommandMapper, CommandCommandMapper)
method CommandCellHandler (line 12) | public CommandCellHandler(IPropertyMapper mapper = null, CommandMapper...
FILE: SettingsView/Handlers/CommandCell/CommandCellHandler.iOS.cs
class CommandCellHandler (line 6) | public partial class CommandCellHandler: LabelCellBaseHandler<CommandCel...
method MapCommand (line 15) | private static void MapCommand(CommandCellHandler handler, CommandCell...
FILE: SettingsView/Handlers/CustomCell/CustomCellHandler.Android.cs
class CustomCellHandler (line 7) | public partial class CustomCellHandler : CellBaseHandler<CustomCell, Cus...
method MapCommand (line 16) | private static void MapCommand(CustomCellHandler handler, CustomCell a...
FILE: SettingsView/Handlers/CustomCell/CustomCellHandler.Net.cs
class CustomCellHandler (line 4) | public partial class CustomCellHandler : CellBaseHandler<CustomCell, Cel...
FILE: SettingsView/Handlers/CustomCell/CustomCellHandler.cs
class CustomCellHandler (line 4) | public partial class CustomCellHandler
method CustomCellHandler (line 8) | public CustomCellHandler() : base(CustomMapper, CustomCommandMapper)
method CustomCellHandler (line 12) | public CustomCellHandler(IPropertyMapper mapper = null, CommandMapper ...
FILE: SettingsView/Handlers/CustomCell/CustomCellHandler.iOS.cs
class CustomCellHandler (line 6) | public partial class CustomCellHandler : CellBaseHandler<CustomCell, Cus...
method MapCommand (line 15) | private static void MapCommand(CustomCellHandler handler, CustomCell a...
FILE: SettingsView/Handlers/DatePickerCell/DatePickerCellHandler.Android.cs
class DatePickerCellHandler (line 6) | public partial class DatePickerCellHandler : LabelCellBaseHandler<DatePi...
method MapDate (line 17) | private static void MapDate(DatePickerCellHandler handler, DatePickerC...
method MapMaximumDate (line 22) | private static void MapMaximumDate(DatePickerCellHandler handler, Date...
method MapMinimumDate (line 27) | private static void MapMinimumDate(DatePickerCellHandler handler, Date...
FILE: SettingsView/Handlers/DatePickerCell/DatePickerCellHandler.Net.cs
class DatePickerCellHandler (line 4) | public partial class DatePickerCellHandler : LabelCellBaseHandler<DatePi...
FILE: SettingsView/Handlers/DatePickerCell/DatePickerCellHandler.cs
class DatePickerCellHandler (line 4) | public partial class DatePickerCellHandler
method DatePickerCellHandler (line 8) | public DatePickerCellHandler() : base(DatePickerMapper, DatePickerComm...
method DatePickerCellHandler (line 12) | public DatePickerCellHandler(IPropertyMapper mapper = null, CommandMap...
FILE: SettingsView/Handlers/DatePickerCell/DatePickerCellHandler.iOS.cs
class DatePickerCellHandler (line 6) | public partial class DatePickerCellHandler : LabelCellBaseHandler<DatePi...
method MapDate (line 18) | private static void MapDate(DatePickerCellHandler handler, DatePickerC...
method MapMaximumDate (line 24) | private static void MapMaximumDate(DatePickerCellHandler handler, Date...
method MapMinimumDate (line 30) | private static void MapMinimumDate(DatePickerCellHandler handler, Date...
method MapTodayText (line 36) | private static void MapTodayText(DatePickerCellHandler handler, DatePi...
FILE: SettingsView/Handlers/EntryCell/EntryCellHandler.Android.cs
class EntryCellHandler (line 6) | public partial class EntryCellHandler : EntryCellBaseHandler<EntryCell, ...
FILE: SettingsView/Handlers/EntryCell/EntryCellHandler.Net.cs
class EntryCellHandler (line 4) | public partial class EntryCellHandler : EntryCellBaseHandler<EntryCell, ...
FILE: SettingsView/Handlers/EntryCell/EntryCellHandler.cs
class EntryCellHandler (line 4) | public partial class EntryCellHandler
method EntryCellHandler (line 7) | public EntryCellHandler() : base(EntryMapper, EntryCommandMapper)
method EntryCellHandler (line 11) | public EntryCellHandler(IPropertyMapper mapper = null, CommandMapper c...
FILE: SettingsView/Handlers/EntryCell/EntryCellHandler.iOS.cs
class EntryCellHandler (line 6) | public partial class EntryCellHandler : EntryCellBaseHandler<EntryCell, ...
FILE: SettingsView/Handlers/EntryCellBase/EntryCellBaseHandler.Android.cs
class EntryCellBaseHandler (line 6) | public partial class EntryCellBaseHandler<TvirtualCell, TnativeCell>
method MapValueText (line 24) | private static void MapValueText(EntryCellBaseHandler<TvirtualCell,Tna...
method MapValueTextFontSize (line 29) | private static void MapValueTextFontSize(EntryCellBaseHandler<Tvirtual...
method MapValueTextFont (line 35) | private static void MapValueTextFont(EntryCellBaseHandler<TvirtualCell...
method MapValueTextColor (line 41) | private static void MapValueTextColor(EntryCellBaseHandler<TvirtualCel...
method MapKeyboard (line 47) | private static void MapKeyboard(EntryCellBaseHandler<TvirtualCell,Tnat...
method MapPlaceholder (line 52) | private static void MapPlaceholder(EntryCellBaseHandler<TvirtualCell,T...
method MapAccentColor (line 57) | private static void MapAccentColor(EntryCellBaseHandler<TvirtualCell,T...
method MapTextAlignment (line 62) | private static void MapTextAlignment(EntryCellBaseHandler<TvirtualCell...
method MapIsPassword (line 67) | private static void MapIsPassword(EntryCellBaseHandler<TvirtualCell,Tn...
FILE: SettingsView/Handlers/EntryCellBase/EntryCellBaseHandler.Net.cs
class EntryCellBaseHandler (line 4) | public partial class EntryCellBaseHandler<TvirtualCell, TnativeCell>
FILE: SettingsView/Handlers/EntryCellBase/EntryCellBaseHandler.cs
class EntryCellBaseHandler (line 12) | public partial class EntryCellBaseHandler<TvirtualCell, TnativeCell>: Ce...
method EntryCellBaseHandler (line 18) | public EntryCellBaseHandler() : base(EntryMapper, EntryCommandMapper)
method EntryCellBaseHandler (line 22) | public EntryCellBaseHandler(IPropertyMapper mapper = null, CommandMapp...
FILE: SettingsView/Handlers/EntryCellBase/EntryCellBaseHandler.iOS.cs
class EntryCellBaseHandler (line 7) | public partial class EntryCellBaseHandler<TvirtualCell, TnativeCell>
method MapShowDoneButtonOnIOS (line 25) | private static void MapShowDoneButtonOnIOS(EntryCellBaseHandler<Tvirtu...
method MapValueText (line 31) | private static void MapValueText(EntryCellBaseHandler<TvirtualCell, Tn...
method MapValueTextFont (line 37) | private static void MapValueTextFont(EntryCellBaseHandler<TvirtualCell...
method MapValueTextColor (line 44) | private static void MapValueTextColor(EntryCellBaseHandler<TvirtualCel...
method MapKeyboard (line 50) | private static void MapKeyboard(EntryCellBaseHandler<TvirtualCell, Tna...
method MapPlaceholder (line 56) | private static void MapPlaceholder(EntryCellBaseHandler<TvirtualCell, ...
method MapTextAlignment (line 62) | private static void MapTextAlignment(EntryCellBaseHandler<TvirtualCell...
method MapIsPassword (line 68) | private static void MapIsPassword(EntryCellBaseHandler<TvirtualCell, T...
FILE: SettingsView/Handlers/LabelCell/LabelCellHandler.Android.cs
class LabelCellHandler (line 6) | public partial class LabelCellHandler: LabelCellBaseHandler<LabelCell, L...
FILE: SettingsView/Handlers/LabelCell/LabelCellHandler.Net.cs
class LabelCellHandler (line 4) | public partial class LabelCellHandler : LabelCellBaseHandler<LabelCell, ...
FILE: SettingsView/Handlers/LabelCell/LabelCellHandler.cs
class LabelCellHandler (line 4) | public partial class LabelCellHandler
method LabelCellHandler (line 6) | public LabelCellHandler() : base(LabelMapper, LabelCommandMapper)
method LabelCellHandler (line 10) | public LabelCellHandler(IPropertyMapper mapper = null, CommandMapper c...
FILE: SettingsView/Handlers/LabelCell/LabelCellHandler.iOS.cs
class LabelCellHandler (line 6) | public partial class LabelCellHandler: LabelCellBaseHandler<LabelCell, L...
FILE: SettingsView/Handlers/LabelCellBase/LabelCellBaseHandler.Android.cs
class LabelCellBaseHandler (line 6) | public partial class LabelCellBaseHandler<TvirtualCell, TnativeCell>
method MapValueText (line 19) | private static void MapValueText(LabelCellBaseHandler<TvirtualCell, Tn...
method MapValueTextColor (line 34) | private static void MapValueTextColor(LabelCellBaseHandler<TvirtualCel...
method MapValueTextFontSize (line 39) | private static void MapValueTextFontSize(LabelCellBaseHandler<Tvirtual...
method MapValueTextFont (line 44) | private static void MapValueTextFont(LabelCellBaseHandler<TvirtualCell...
method MapUseDescriptionAsValue (line 49) | private static void MapUseDescriptionAsValue(LabelCellBaseHandler<Tvir...
FILE: SettingsView/Handlers/LabelCellBase/LabelCellBaseHandler.Net.cs
class LabelCellBaseHandler (line 4) | public partial class LabelCellBaseHandler<TvirtualCell, TnativeCell>
FILE: SettingsView/Handlers/LabelCellBase/LabelCellBaseHandler.cs
class LabelCellBaseHandler (line 13) | public partial class LabelCellBaseHandler<TvirtualCell, TnativeCell> : C...
method LabelCellBaseHandler (line 19) | public LabelCellBaseHandler(): base(LabelMapper, LabelCommandMapper)
method LabelCellBaseHandler (line 23) | public LabelCellBaseHandler(IPropertyMapper mapper = null, CommandMapp...
FILE: SettingsView/Handlers/LabelCellBase/LabelCellBaseHandler.iOS.cs
class LabelCellBaseHandler (line 6) | public partial class LabelCellBaseHandler<TvirtualCell, TnativeCell>
method MapValueTextColor (line 19) | private static void MapValueTextColor(LabelCellBaseHandler<TvirtualCel...
method MapValueText (line 25) | private static void MapValueText(LabelCellBaseHandler<TvirtualCell, Tn...
method MapValueTextFont (line 41) | private static void MapValueTextFont(LabelCellBaseHandler<TvirtualCell...
FILE: SettingsView/Handlers/NumberPickerCell/NumberPickerCellHandler.Android.cs
class NumberPickerCellHandler (line 6) | public partial class NumberPickerCellHandler : LabelCellBaseHandler<Numb...
method MapMin (line 18) | private static void MapMin(NumberPickerCellHandler handler, NumberPick...
method MapMax (line 23) | private static void MapMax(NumberPickerCellHandler handler, NumberPick...
method MapNumber (line 28) | private static void MapNumber(NumberPickerCellHandler handler, NumberP...
method MapPickerTitle (line 33) | private static void MapPickerTitle(NumberPickerCellHandler handler, Nu...
method MapSelectedCommand (line 38) | private static void MapSelectedCommand(NumberPickerCellHandler handler...
FILE: SettingsView/Handlers/NumberPickerCell/NumberPickerCellHandler.Net.cs
class NumberPickerCellHandler (line 4) | public partial class NumberPickerCellHandler : LabelCellBaseHandler<Numb...
FILE: SettingsView/Handlers/NumberPickerCell/NumberPickerCellHandler.cs
class NumberPickerCellHandler (line 4) | public partial class NumberPickerCellHandler
method NumberPickerCellHandler (line 8) | public NumberPickerCellHandler() : base(NumberPickerMapper, NumberPick...
method NumberPickerCellHandler (line 12) | public NumberPickerCellHandler(IPropertyMapper mapper = null, CommandM...
FILE: SettingsView/Handlers/NumberPickerCell/NumberPickerCellHandler.iOS.cs
class NumberPickerCellHandler (line 6) | public partial class NumberPickerCellHandler : LabelCellBaseHandler<Numb...
method MapNumberList (line 18) | private static void MapNumberList(NumberPickerCellHandler handler, Num...
method MapNumber (line 24) | private static void MapNumber(NumberPickerCellHandler handler, NumberP...
method MapPickerTitle (line 30) | private static void MapPickerTitle(NumberPickerCellHandler handler, Nu...
method MapSelectedCommand (line 36) | private static void MapSelectedCommand(NumberPickerCellHandler handler...
FILE: SettingsView/Handlers/RadioCell/RadioCellHandler.Android.cs
class RadioCellHandler (line 6) | public partial class RadioCellHandler : CellBaseHandler<RadioCell, Radio...
method MapAccentColor (line 14) | private static void MapAccentColor(RadioCellHandler handler, RadioCell...
FILE: SettingsView/Handlers/RadioCell/RadioCellHandler.Net.cs
class RadioCellHandler (line 4) | public partial class RadioCellHandler : CellBaseHandler<RadioCell, CellB...
FILE: SettingsView/Handlers/RadioCell/RadioCellHandler.cs
class RadioCellHandler (line 4) | public partial class RadioCellHandler
method RadioCellHandler (line 8) | public RadioCellHandler() : base(RadioMapper, RadioCommandMapper)
method RadioCellHandler (line 12) | public RadioCellHandler(IPropertyMapper mapper = null, CommandMapper c...
FILE: SettingsView/Handlers/RadioCell/RadioCellHandler.iOS.cs
class RadioCellHandler (line 6) | public partial class RadioCellHandler : CellBaseHandler<RadioCell, Radio...
method MapAccentColor (line 14) | private static void MapAccentColor(RadioCellHandler handler, RadioCell...
FILE: SettingsView/Handlers/SettingsViewHandler.Android.cs
class SettingsViewHandler (line 11) | [Android.Runtime.Preserve(AllMembers = true)]
method CreatePlatformView (line 27) | protected override AiRecyclerView CreatePlatformView()
method ConnectHandler (line 32) | protected override void ConnectHandler(AiRecyclerView platformView)
method DisconnectHandler (line 42) | protected override void DisconnectHandler(AiRecyclerView platformView)
method MapSeparatorColor (line 49) | private static void MapSeparatorColor(SettingsViewHandler handler, Set...
method MapBackgroundColor (line 54) | private static void MapBackgroundColor(SettingsViewHandler handler, Se...
method MapRowHeight (line 59) | private static void MapRowHeight(SettingsViewHandler handler, Settings...
method MapScrollToTop (line 64) | private static void MapScrollToTop(SettingsViewHandler handler, Settin...
method MapScrollToBottom (line 69) | private static void MapScrollToBottom(SettingsViewHandler handler, Set...
method MapDataSetChanged (line 74) | private static void MapDataSetChanged(SettingsViewHandler handler, Set...
method MapInvalidateItemDecorations (line 79) | private static void MapInvalidateItemDecorations(SettingsViewHandler h...
FILE: SettingsView/Handlers/SettingsViewHandler.Net.cs
class SettingsViewHandler (line 7) | public partial class SettingsViewHandler : ViewHandler<SettingsView, View>
method CreatePlatformView (line 12) | protected override View CreatePlatformView()
FILE: SettingsView/Handlers/SettingsViewHandler.cs
class SettingsViewHandler (line 6) | public partial class SettingsViewHandler
method SettingsViewHandler (line 8) | public SettingsViewHandler(): base(Mapper)
method SettingsViewHandler (line 12) | public SettingsViewHandler(IPropertyMapper mapper = null) : base(mappe...
FILE: SettingsView/Handlers/SettingsViewHandler.iOS.cs
class SettingsViewHandler (line 16) | public partial class SettingsViewHandler: ViewHandler<SettingsView, AiTa...
method CreatePlatformView (line 38) | protected override AiTableView CreatePlatformView()
method ConnectHandler (line 59) | protected override void ConnectHandler(AiTableView platformView)
method DisconnectHandler (line 78) | protected override void DisconnectHandler(AiTableView platformView)
method OnContentSizeChanged (line 103) | void OnContentSizeChanged(NSObservedChange change)
method ParentPageAppearing (line 108) | void ParentPageAppearing(object sender, EventArgs e)
method OnCollectionChanged (line 121) | void OnCollectionChanged(object sender, NotifyCollectionChangedEventAr...
method OnSectionCollectionChanged (line 126) | void OnSectionCollectionChanged(object sender, NotifyCollectionChanged...
method OnSectionPropertyChanged (line 132) | void OnSectionPropertyChanged(object sender, System.ComponentModel.Pro...
method OnCellPropertyChanged (line 152) | void OnCellPropertyChanged(object sender, CellPropertyChangedEventArgs e)
method MapScrollToBottom (line 160) | private static void MapScrollToBottom(SettingsViewHandler handler, Set...
method MapScrollToTop (line 183) | private static void MapScrollToTop(SettingsViewHandler handler, Settin...
method MapRowHeight (line 204) | private static void MapRowHeight(SettingsViewHandler handler, Settings...
method MapBackgroundColor (line 210) | private static void MapBackgroundColor(SettingsViewHandler handler, Se...
method MapSeparatorColor (line 218) | private static void MapSeparatorColor(SettingsViewHandler handler, Set...
FILE: SettingsView/Handlers/SimpleCheckCell/SimpleCheckCellHandler.Android.cs
class SimpleCheckCellHandler (line 6) | public partial class SimpleCheckCellHandler : CellBaseHandler<SimpleChec...
method MapAccentColor (line 8) | private static void MapAccentColor(SimpleCheckCellHandler handler, Sim...
method MapChecked (line 13) | private static void MapChecked(SimpleCheckCellHandler handler, SimpleC...
FILE: SettingsView/Handlers/SimpleCheckCell/SimpleCheckCellHandler.Net.cs
class SimpleCheckCellHandler (line 4) | public partial class SimpleCheckCellHandler : CellBaseHandler<SimpleChec...
method MapAccentColor (line 6) | private static void MapAccentColor(SimpleCheckCellHandler handler, Sim...
method MapChecked (line 10) | private static void MapChecked(SimpleCheckCellHandler handler, SimpleC...
FILE: SettingsView/Handlers/SimpleCheckCell/SimpleCheckCellHandler.cs
class SimpleCheckCellHandler (line 5) | public partial class SimpleCheckCellHandler
method SimpleCheckCellHandler (line 16) | public SimpleCheckCellHandler() : base(SimpleCheckMapper, SimpleCheckC...
method SimpleCheckCellHandler (line 20) | public SimpleCheckCellHandler(IPropertyMapper mapper = null, CommandMa...
FILE: SettingsView/Handlers/SimpleCheckCell/SimpleCheckCellHandler.iOS.cs
class SimpleCheckCellHandler (line 6) | public partial class SimpleCheckCellHandler : CellBaseHandler<SimpleChec...
method MapAccentColor (line 8) | private static void MapAccentColor(SimpleCheckCellHandler handler, Sim...
method MapChecked (line 13) | private static void MapChecked(SimpleCheckCellHandler handler, SimpleC...
FILE: SettingsView/Handlers/SwitchCell/SwitchCellHandler.Android.cs
class SwitchCellHandler (line 6) | public partial class SwitchCellHandler : CellBaseHandler<SwitchCell, Swi...
method MapAccentColor (line 15) | private static void MapAccentColor(SwitchCellHandler handler, SwitchCe...
method MapOn (line 20) | private static void MapOn(SwitchCellHandler handler, SwitchCell arg2)
FILE: SettingsView/Handlers/SwitchCell/SwitchCellHandler.Net.cs
class SwitchCellHandler (line 4) | public partial class SwitchCellHandler : CellBaseHandler<SwitchCell, Cel...
FILE: SettingsView/Handlers/SwitchCell/SwitchCellHandler.cs
class SwitchCellHandler (line 4) | public partial class SwitchCellHandler
method SwitchCellHandler (line 8) | public SwitchCellHandler() : base(SwitchMapper,SwitchCommandMapper)
method SwitchCellHandler (line 12) | public SwitchCellHandler(IPropertyMapper mapper = null, CommandMapper ...
FILE: SettingsView/Handlers/SwitchCell/SwitchCellHandler.iOS.cs
class SwitchCellHandler (line 6) | public partial class SwitchCellHandler : CellBaseHandler<SwitchCell, Swi...
method MapAccentColor (line 15) | private static void MapAccentColor(SwitchCellHandler handler, SwitchCe...
method MapOn (line 21) | private static void MapOn(SwitchCellHandler handler, SwitchCell arg2)
FILE: SettingsView/Handlers/TextPickerCell/TextPickerCellHandler.Android.cs
class TextPickerCellHandler (line 6) | public partial class TextPickerCellHandler : LabelCellBaseHandler<TextPi...
method MapSelectedItem (line 16) | private static void MapSelectedItem(TextPickerCellHandler handler, Tex...
method MapPickerTitle (line 21) | private static void MapPickerTitle(TextPickerCellHandler handler, Text...
method MapSelectedCommand (line 26) | private static void MapSelectedCommand(TextPickerCellHandler handler, ...
FILE: SettingsView/Handlers/TextPickerCell/TextPickerCellHandler.Net.cs
class TextPickerCellHandler (line 4) | public partial class TextPickerCellHandler : LabelCellBaseHandler<TextPi...
FILE: SettingsView/Handlers/TextPickerCell/TextPickerCellHandler.cs
class TextPickerCellHandler (line 4) | public partial class TextPickerCellHandler
method TextPickerCellHandler (line 8) | public TextPickerCellHandler() : base(TextPickerMapper, TextPickerComm...
method TextPickerCellHandler (line 12) | public TextPickerCellHandler(IPropertyMapper mapper = null, CommandMap...
FILE: SettingsView/Handlers/TextPickerCell/TextPickerCellHandler.iOS.cs
class TextPickerCellHandler (line 6) | public partial class TextPickerCellHandler : LabelCellBaseHandler<TextPi...
method MapItems (line 17) | private static void MapItems(TextPickerCellHandler handler, TextPicker...
method MapSelectedItem (line 23) | private static void MapSelectedItem(TextPickerCellHandler handler, Tex...
method MapPickerTitle (line 29) | private static void MapPickerTitle(TextPickerCellHandler handler, Text...
method MapSelectedCommand (line 35) | private static void MapSelectedCommand(TextPickerCellHandler handler, ...
FILE: SettingsView/Handlers/TimePickerCell/TimePickerCellHandler.Android.cs
class TimePickerCellHandler (line 6) | public partial class TimePickerCellHandler : LabelCellBaseHandler<TimePi...
method MapTime (line 16) | private static void MapTime(TimePickerCellHandler handler, TimePickerC...
method MapPickerTitle (line 21) | private static void MapPickerTitle(TimePickerCellHandler handler, Time...
FILE: SettingsView/Handlers/TimePickerCell/TimePickerCellHandler.Net.cs
class TimePickerCellHandler (line 4) | public partial class TimePickerCellHandler : LabelCellBaseHandler<TimePi...
FILE: SettingsView/Handlers/TimePickerCell/TimePickerCellHandler.cs
class TimePickerCellHandler (line 4) | public partial class TimePickerCellHandler
method TimePickerCellHandler (line 8) | public TimePickerCellHandler() : base(TimePickerMapper, TimePickerComm...
method TimePickerCellHandler (line 12) | public TimePickerCellHandler(IPropertyMapper mapper = null, CommandMap...
FILE: SettingsView/Handlers/TimePickerCell/TimePickerCellHandler.iOS.cs
class TimePickerCellHandler (line 6) | public partial class TimePickerCellHandler : LabelCellBaseHandler<TimePi...
method MapTime (line 16) | private static void MapTime(TimePickerCellHandler handler, TimePickerC...
method MapPickerTitle (line 22) | private static void MapPickerTitle(TimePickerCellHandler handler, Time...
FILE: SettingsView/MauiAppBuilderExtension.cs
class MauiAppBuilderExtension (line 4) | public static class MauiAppBuilderExtension
method UseSettingsView (line 6) | public static MauiAppBuilder UseSettingsView(this MauiAppBuilder build...
FILE: SettingsView/MauiHandlerExtension.cs
class MauiHandlerExtension (line 6) | public static class MauiHandlerExtension
method AddSettingsViewHandler (line 8) | public static void AddSettingsViewHandler(this IMauiHandlersCollection...
FILE: SettingsView/Native/Android/AiRecyclerView.cs
class AiRecyclerView (line 16) | [Android.Runtime.Preserve(AllMembers = true)]
method AiRecyclerView (line 32) | public AiRecyclerView(Context context, SettingsView settingsView) : ba...
method AiRecyclerView (line 73) | public AiRecyclerView(Context context, IAttributeSet attrs) : base(con...
method AiRecyclerView (line 77) | public AiRecyclerView(Context context, IAttributeSet attrs, int defSty...
method AiRecyclerView (line 81) | protected AiRecyclerView(IntPtr javaReference, JniHandleOwnership tran...
method Dispose (line 85) | protected override void Dispose(bool disposing)
method DisposeChildView (line 173) | void DisposeChildView(View view)
method ParentPageAppearing (line 186) | void ParentPageAppearing(object sender, EventArgs e)
method RootCollectionChanged (line 191) | void RootCollectionChanged(object sender, System.Collections.Specializ...
method UpdateSeparatorColor (line 221) | internal void UpdateSeparatorColor()
method UpdateRowHeight (line 228) | internal void UpdateRowHeight()
method UpdateScrollToTop (line 241) | internal void UpdateScrollToTop()
method UpdateScrollToBottom (line 251) | internal void UpdateScrollToBottom()
method UpdateBackgroundColor (line 264) | internal void UpdateBackgroundColor()
class SettingsViewSimpleCallback (line 274) | class SettingsViewSimpleCallback : ItemTouchHelper.SimpleCallback
method SettingsViewSimpleCallback (line 280) | public SettingsViewSimpleCallback(SettingsView settingsView, int dragD...
method OnMove (line 285) | public override bool OnMove(RecyclerView recyclerView, RecyclerView.Vi...
method DataSourceMoved (line 348) | void DataSourceMoved()
method DataSourceMoved (line 366) | void DataSourceMoved(RowInfo from, RowInfo to)
method ClearView (line 392) | public override void ClearView(RecyclerView recyclerView, RecyclerView...
method GetDragDirs (line 408) | public override int GetDragDirs(RecyclerView recyclerView, RecyclerVie...
method OnSelectedChanged (line 433) | public override void OnSelectedChanged(RecyclerView.ViewHolder viewHol...
method OnSwiped (line 450) | public override void OnSwiped(RecyclerView.ViewHolder viewHolder, int ...
method Dispose (line 455) | protected override void Dispose(bool disposing)
FILE: SettingsView/Native/Android/Cells/ButtonCellView.cs
class ButtonCellView (line 11) | [Android.Runtime.Preserve(AllMembers = true)]
method ButtonCellView (line 23) | public ButtonCellView(Context context, CellBase cell) : base(context, ...
method ButtonCellView (line 28) | public ButtonCellView(IntPtr javaReference, JniHandleOwnership transfe...
method CellPropertyChanged (line 35) | public override void CellPropertyChanged(object sender, System.Compone...
method RowSelected (line 45) | public override void RowSelected(SettingsViewRecyclerAdapter adapter, ...
method UpdateCell (line 53) | public override void UpdateCell()
method Dispose (line 65) | protected override void Dispose(bool disposing)
method UpdateTitleAlignment (line 79) | internal void UpdateTitleAlignment()
method UpdateCommand (line 84) | internal void UpdateCommand()
method UpdateIsEnabled (line 117) | internal override void UpdateIsEnabled()
method Command_CanExecuteChanged (line 126) | void Command_CanExecuteChanged(object sender, EventArgs e)
FILE: SettingsView/Native/Android/Cells/CellBaseView.cs
class CellBaseView (line 23) | [Android.Runtime.Preserve(AllMembers = true)]
method CellBaseView (line 109) | public CellBaseView(Context context, CellBase cell) : base(context)
method CellBaseView (line 122) | public CellBaseView(IntPtr javaReference,JniHandleOwnership transfer) ...
method CreateContentView (line 124) | protected virtual void CreateContentView()
method CellPropertyChanged (line 173) | public virtual void CellPropertyChanged(object sender, PropertyChanged...
method ParentPropertyChanged (line 182) | public virtual void ParentPropertyChanged(object sender, PropertyChang...
method SectionPropertyChanged (line 253) | public virtual void SectionPropertyChanged(object sender, PropertyChan...
method RowSelected (line 262) | public virtual void RowSelected(SettingsViewRecyclerAdapter adapter, i...
method RowLongPressed (line 272) | public virtual bool RowLongPressed(SettingsViewRecyclerAdapter adapter...
method UpdateWithForceLayout (line 281) | internal void UpdateWithForceLayout(System.Action updateAction)
method UpdateLayout (line 287) | internal void UpdateLayout()
method UpdateCell (line 295) | public virtual void UpdateCell()
method UpdateBackgroundColor (line 320) | internal void UpdateBackgroundColor()
method UpdateSelectedColor (line 335) | internal void UpdateSelectedColor()
method UpdateTitleText (line 347) | internal void UpdateTitleText()
method UpdateTitleColor (line 354) | internal void UpdateTitleColor()
method UpdateTitleFontSize (line 367) | internal void UpdateTitleFontSize()
method UpdateTitleFont (line 383) | internal void UpdateTitleFont()
method UpdateDescriptionText (line 392) | internal void UpdateDescriptionText()
method UpdateDescriptionFontSize (line 399) | internal void UpdateDescriptionFontSize()
method UpdateDescriptionFont (line 412) | internal void UpdateDescriptionFont()
method UpdateDescriptionColor (line 421) | internal void UpdateDescriptionColor()
method UpdateHintText (line 434) | internal void UpdateHintText()
method UpdateHintTextColor (line 446) | internal void UpdateHintTextColor()
method UpdateHintFontSize (line 459) | internal void UpdateHintFontSize()
method UpdateHintFont (line 472) | internal void UpdateHintFont()
method UpdateIsEnabled (line 484) | internal virtual void UpdateIsEnabled()
method UpdateIsVisible (line 489) | internal virtual void UpdateIsVisible()
method SetEnabledAppearance (line 498) | internal virtual void SetEnabledAppearance(bool isEnabled)
method UpdateIconRadius (line 518) | internal void UpdateIconRadius()
method UpdateIconSize (line 528) | internal void UpdateIconSize()
method UpdateIcon (line 545) | internal void UpdateIcon(bool forceLoad = false)
method SetImageSource (line 570) | void IImageSourcePartSetter.SetImageSource(Drawable platformImage)
method CreateRoundImage (line 575) | Bitmap CreateRoundImage(Bitmap image)
method Dispose (line 607) | protected override void Dispose(bool disposing)
FILE: SettingsView/Native/Android/Cells/CheckboxCellView.cs
class CheckboxCellView (line 17) | [Android.Runtime.Preserve(AllMembers = true)]
method CheckboxCellView (line 28) | public CheckboxCellView(Context context, CellBase cell) : base(context...
method CheckboxCellView (line 52) | public CheckboxCellView(IntPtr javaReference, JniHandleOwnership trans...
method UpdateCell (line 57) | public override void UpdateCell()
method CellPropertyChanged (line 69) | public override void CellPropertyChanged(object sender, System.Compone...
method ParentPropertyChanged (line 79) | public override void ParentPropertyChanged(object sender, System.Compo...
method RowSelected (line 93) | public override void RowSelected(SettingsViewRecyclerAdapter adapter, ...
method Dispose (line 103) | protected override void Dispose(bool disposing)
method SetEnabledAppearance (line 118) | internal override void SetEnabledAppearance(bool isEnabled)
method OnCheckedChanged (line 138) | public void OnCheckedChanged(CompoundButton buttonView, bool isChecked)
method UpdateChecked (line 144) | internal void UpdateChecked()
method UpdateAccentColor (line 149) | internal void UpdateAccentColor()
method ChangeCheckColor (line 162) | void ChangeCheckColor(Android.Graphics.Color accent)
FILE: SettingsView/Native/Android/Cells/CommandCellView.cs
class CommandCellView (line 14) | [Android.Runtime.Preserve(AllMembers = true)]
method CommandCellView (line 27) | public CommandCellView(Context context, CellBase cell) : base(context,...
method CommandCellView (line 52) | public CommandCellView(IntPtr javaReference, JniHandleOwnership transf...
method CellPropertyChanged (line 59) | public override void CellPropertyChanged(object sender, System.Compone...
method RowSelected (line 64) | public override void RowSelected(SettingsViewRecyclerAdapter adapter, ...
method UpdateCell (line 76) | public override void UpdateCell()
method Dispose (line 87) | protected override void Dispose(bool disposing)
method UpdateCommand (line 106) | internal void UpdateCommand()
method UpdateIsEnabled (line 137) | internal override void UpdateIsEnabled()
method Command_CanExecuteChanged (line 146) | void Command_CanExecuteChanged(object sender, EventArgs e)
FILE: SettingsView/Native/Android/Cells/CustomCellView.cs
class CustomCellView (line 13) | [Android.Runtime.Preserve(AllMembers = true)]
method CustomCellView (line 23) | public CustomCellView(Context context, CellBase cell) : base(context, ...
method CustomCellView (line 44) | public CustomCellView(IntPtr javaReference, JniHandleOwnership transfe...
method CreateContentView (line 46) | protected override void CreateContentView()
method UpdateContent (line 69) | public void UpdateContent()
method CellPropertyChanged (line 80) | public override void CellPropertyChanged(object sender, System.Compone...
method RowSelected (line 85) | public override void RowSelected(SettingsViewRecyclerAdapter adapter, ...
method RowLongPressed (line 98) | public override bool RowLongPressed(SettingsViewRecyclerAdapter adapte...
method UpdateCell (line 113) | public override void UpdateCell()
method Dispose (line 125) | protected override void Dispose(bool disposing)
method UpdateCommand (line 152) | internal void UpdateCommand()
method UpdateIsEnabled (line 182) | internal override void UpdateIsEnabled()
method Command_CanExecuteChanged (line 191) | void Command_CanExecuteChanged(object sender, EventArgs e)
FILE: SettingsView/Native/Android/Cells/DatePickerCellView.cs
class DatePickerCellView (line 12) | [Android.Runtime.Preserve(AllMembers = true)]
method DatePickerCellView (line 24) | public DatePickerCellView(Context context, CellBase cell) : base(conte...
method DatePickerCellView (line 29) | public DatePickerCellView(IntPtr javaReference, JniHandleOwnership tra...
method UpdateCell (line 34) | public override void UpdateCell()
method CellPropertyChanged (line 45) | public override void CellPropertyChanged(object sender, System.Compone...
method RowSelected (line 55) | public override void RowSelected(SettingsViewRecyclerAdapter adapter, ...
method Dispose (line 65) | protected override void Dispose(bool disposing)
method ShowDialog (line 79) | void ShowDialog()
method CreateDatePickerDialog (line 114) | void CreateDatePickerDialog(int year, int month, int day)
method OnCancelButtonClicked (line 137) | void OnCancelButtonClicked(object sender, EventArgs e)
method UpdateDate (line 142) | internal void UpdateDate()
method UpdateMaximumDate (line 155) | internal void UpdateMaximumDate()
method UpdateMinimumDate (line 164) | internal void UpdateMinimumDate()
FILE: SettingsView/Native/Android/Cells/EntryCellView.cs
class EntryCellView (line 24) | [Android.Runtime.Preserve(AllMembers = true)]
method EntryCellView (line 37) | public EntryCellView(Context context, CellBase cell) : base(context, c...
method EntryCellView (line 71) | public EntryCellView(IntPtr javaReference, JniHandleOwnership transfer...
method UpdateCell (line 76) | public override void UpdateCell()
method CellPropertyChanged (line 95) | public override void CellPropertyChanged(object sender, System.Compone...
method ParentPropertyChanged (line 105) | public override void ParentPropertyChanged(object sender, System.Compo...
method Dispose (line 132) | protected override void Dispose(bool disposing)
method SetEnabledAppearance (line 153) | internal override void SetEnabledAppearance(bool isEnabled)
method EntryCellView_Click (line 168) | void EntryCellView_Click(object sender, EventArgs e)
method UpdateValueText (line 174) | internal void UpdateValueText()
method UpdateValueTextFontSize (line 184) | internal void UpdateValueTextFontSize()
method UpdateValueTextFont (line 196) | internal void UpdateValueTextFont()
method UpdateValueTextColor (line 205) | internal void UpdateValueTextColor()
method UpdateKeyboard (line 217) | internal void UpdateKeyboard()
method UpdateIsPassword (line 222) | internal void UpdateIsPassword()
method UpdatePlaceholder (line 228) | internal void UpdatePlaceholder()
method UpdateTextAlignment (line 238) | internal void UpdateTextAlignment()
method UpdateAccentColor (line 243) | internal void UpdateAccentColor()
method ChangeTextViewBack (line 255) | void ChangeTextViewBack(Android.Graphics.Color accent)
method OnEditorAction (line 270) | bool TextView.IOnEditorActionListener.OnEditorAction(TextView v, ImeAc...
method DoneEdit (line 282) | void DoneEdit()
method HideKeyboard (line 290) | void HideKeyboard(Android.Views.View inputView)
method ShowKeyboard (line 299) | void ShowKeyboard(Android.Views.View inputView)
method AfterTextChanged (line 310) | void ITextWatcher.AfterTextChanged(IEditable s)
method BeforeTextChanged (line 314) | void ITextWatcher.BeforeTextChanged(ICharSequence s, int start, int co...
method OnTextChanged (line 318) | void ITextWatcher.OnTextChanged(ICharSequence s, int start, int before...
method OnFocusChange (line 328) | void IOnFocusChangeListener.OnFocusChange(Android.Views.View v, bool h...
method EntryCell_Focused (line 344) | void EntryCell_Focused(object sender, EventArgs e)
class AiEditText (line 352) | internal class AiEditText : EditText
method AiEditText (line 357) | public AiEditText(Context context) : base(context)
method OnFocusChanged (line 361) | protected override void OnFocusChanged(bool gainFocus, [GeneratedEnum]...
method OnKeyPreIme (line 373) | public override bool OnKeyPreIme(Keycode keyCode, KeyEvent e)
FILE: SettingsView/Native/Android/Cells/LabelCellView.cs
class LabelCellView (line 16) | [Android.Runtime.Preserve(AllMembers = true)]
method LabelCellView (line 36) | public LabelCellView(Context context, CellBase cell) : base(context, c...
method LabelCellView (line 58) | public LabelCellView(IntPtr javaReference, JniHandleOwnership transfer...
method CellPropertyChanged (line 65) | public override void CellPropertyChanged(object sender, PropertyChange...
method ParentPropertyChanged (line 75) | public override void ParentPropertyChanged(object sender, PropertyChan...
method UpdateCell (line 97) | public override void UpdateCell()
method SetEnabledAppearance (line 111) | internal override void SetEnabledAppearance(bool isEnabled)
method UpdateUseDescriptionAsValue (line 124) | internal void UpdateUseDescriptionAsValue()
method UpdateValueText (line 142) | internal void UpdateValueText()
method UpdateValueTextFontSize (line 147) | internal void UpdateValueTextFontSize()
method UpdateValueTextFont (line 160) | internal void UpdateValueTextFont()
method UpdateValueTextColor (line 170) | internal void UpdateValueTextColor()
method Dispose (line 187) | protected override void Dispose(bool disposing)
FILE: SettingsView/Native/Android/Cells/NumberPickerCellView.cs
class NumberPickerCellView (line 22) | [Android.Runtime.Preserve(AllMembers = true)]
method NumberPickerCellView (line 39) | public NumberPickerCellView(Context context, CellBase cell) : base(con...
method NumberPickerCellView (line 44) | public NumberPickerCellView(IntPtr javaReference, JniHandleOwnership t...
method CellPropertyChanged (line 51) | public override void CellPropertyChanged(object sender, System.Compone...
method RowSelected (line 61) | public override void RowSelected(SettingsViewRecyclerAdapter adapter, ...
method UpdateCell (line 69) | public override void UpdateCell()
method Dispose (line 84) | protected override void Dispose(bool disposing)
method UpdateMin (line 95) | internal void UpdateMin()
method UpdateMax (line 100) | internal void UpdateMax()
method UpdateNumber (line 105) | internal void UpdateNumber()
method FormatNumber (line 110) | private string FormatNumber(int? number)
method UpdatePickerTitle (line 117) | internal void UpdatePickerTitle()
method UpdateCommand (line 122) | internal void UpdateCommand()
method CreateDialog (line 127) | void CreateDialog()
method ApplyInitialFormattingBugfix (line 184) | private static void ApplyInitialFormattingBugfix(APicker picker)
method DestroyDialog (line 200) | void DestroyDialog()
class UnitFormatter (line 217) | internal class UnitFormatter : Object, NumberPicker.IFormatter
method UnitFormatter (line 221) | public UnitFormatter(string unit)
method Format (line 226) | public string Format(int value)
FILE: SettingsView/Native/Android/Cells/RadioCellView.cs
class RadioCellView (line 15) | [Android.Runtime.Preserve(AllMembers = true)]
method RadioCellView (line 45) | public RadioCellView(Context context, CellBase cell) : base(context, c...
method RadioCellView (line 64) | public RadioCellView(IntPtr javaReference, JniHandleOwnership transfer...
method Dispose (line 70) | protected override void Dispose(bool disposing)
method UpdateCell (line 84) | public override void UpdateCell()
method CellPropertyChanged (line 96) | public override void CellPropertyChanged(object sender, PropertyChange...
method ParentPropertyChanged (line 106) | public override void ParentPropertyChanged(object sender, PropertyChan...
method SectionPropertyChanged (line 124) | public override void SectionPropertyChanged(object sender, PropertyCha...
method RowSelected (line 138) | public override void RowSelected(SettingsViewRecyclerAdapter adapter, ...
method UpdateSelectedValue (line 146) | void UpdateSelectedValue()
method UpdateAccentColor (line 161) | internal void UpdateAccentColor()
FILE: SettingsView/Native/Android/Cells/SimpleCheck.cs
class SimpleCheck (line 11) | [Android.Runtime.Preserve(AllMembers = true)]
method SimpleCheck (line 26) | public SimpleCheck(Android.Content.Context context) : base(context)
method OnDraw (line 53) | protected override void OnDraw(Canvas canvas)
method Dispose (line 88) | protected override void Dispose(bool disposing)
FILE: SettingsView/Native/Android/Cells/SimpleCheckCellView.cs
class SimpleCheckCellView (line 10) | [Android.Runtime.Preserve(AllMembers = true)]
method SimpleCheckCellView (line 16) | public SimpleCheckCellView(Context context, CellBase cell) : base(cont...
method Dispose (line 35) | protected override void Dispose(bool disposing)
method ParentPropertyChanged (line 46) | public override void ParentPropertyChanged(object sender, PropertyChan...
method RowSelected (line 55) | public override void RowSelected(SettingsViewRecyclerAdapter adapter, ...
method UpdateChecked (line 60) | internal void UpdateChecked()
method UpdateAccentColor (line 65) | internal void UpdateAccentColor()
FILE: SettingsView/Native/Android/Cells/SwitchCellView.cs
class SwitchCellView (line 17) | [Android.Runtime.Preserve(AllMembers = true)]
method SwitchCellView (line 28) | public SwitchCellView(Context context, CellBase cell) : base(context, ...
method SwitchCellView (line 52) | public SwitchCellView(IntPtr javaReference, JniHandleOwnership transfe...
method UpdateCell (line 57) | public override void UpdateCell()
method CellPropertyChanged (line 69) | public override void CellPropertyChanged(object sender, System.Compone...
method ParentPropertyChanged (line 79) | public override void ParentPropertyChanged(object sender, System.Compo...
method OnCheckedChanged (line 93) | public void OnCheckedChanged(CompoundButton buttonView, bool isChecked)
method RowSelected (line 103) | public override void RowSelected(SettingsViewRecyclerAdapter adapter, ...
method Dispose (line 113) | protected override void Dispose(bool disposing)
method SetEnabledAppearance (line 132) | internal override void SetEnabledAppearance(bool isEnabled)
method UpdateOn (line 147) | internal void UpdateOn()
method UpdateAccentColor (line 152) | internal void UpdateAccentColor()
method ChangeSwitchColor (line 164) | void ChangeSwitchColor(Android.Graphics.Color accent)
FILE: SettingsView/Native/Android/Cells/TextPickerCellView.cs
class TextPickerCellView (line 15) | [Android.Runtime.Preserve(AllMembers = true)]
method TextPickerCellView (line 30) | public TextPickerCellView(Context context, CellBase cell) : base(conte...
method TextPickerCellView (line 35) | public TextPickerCellView(IntPtr javaReference, JniHandleOwnership tra...
method CellPropertyChanged (line 42) | public override void CellPropertyChanged(object sender, System.Compone...
method RowSelected (line 52) | public override void RowSelected(SettingsViewRecyclerAdapter adapter, ...
method UpdateCell (line 61) | public override void UpdateCell()
method Dispose (line 74) | protected override void Dispose(bool disposing)
method UpdateSelectedItem (line 85) | internal void UpdateSelectedItem()
method UpdatePickerTitle (line 90) | internal void UpdatePickerTitle()
method UpdateCommand (line 95) | internal void UpdateCommand()
method CreateDialog (line 100) | void CreateDialog()
method DestroyDialog (line 153) | void DestroyDialog()
FILE: SettingsView/Native/Android/Cells/TimePickerCellView.cs
class TimePickerCellView (line 13) | [Android.Runtime.Preserve(AllMembers = true)]
method TimePickerCellView (line 26) | public TimePickerCellView(Context context, CellBase cell) : base(conte...
method TimePickerCellView (line 31) | public TimePickerCellView(IntPtr javaReference, JniHandleOwnership tra...
method UpdateCell (line 36) | public override void UpdateCell()
method CellPropertyChanged (line 48) | public override void CellPropertyChanged(object sender, System.Compone...
method RowSelected (line 58) | public override void RowSelected(SettingsViewRecyclerAdapter adapter, ...
method Dispose (line 69) | protected override void Dispose(bool disposing)
method CreateDialog (line 79) | void CreateDialog()
method UpdateTime (line 111) | internal void UpdateTime()
method UpdatePickerTitle (line 116) | internal void UpdatePickerTitle()
method TimeSelected (line 121) | void TimeSelected(object sender, TimePickerDialog.TimeSetEventArgs e)
FILE: SettingsView/Native/Android/DrawableUtility.cs
class DrawableUtility (line 10) | [Android.Runtime.Preserve(AllMembers = true)]
method CreateRipple (line 19) | public static RippleDrawable CreateRipple(Android.Graphics.Color color...
method GetPressedColorSelector (line 34) | public static ColorStateList GetPressedColorSelector(int pressedColor)
FILE: SettingsView/Native/Android/Extensions/LayoutAlignmentExtensions.cs
class LayoutAlignmentExtensions (line 9) | [Android.Runtime.Preserve(AllMembers = true)]
method ToNativeVertical (line 17) | public static GravityFlags ToNativeVertical(this LayoutAlignment forms)
method ToNativeHorizontal (line 36) | public static GravityFlags ToNativeHorizontal(this LayoutAlignment forms)
FILE: SettingsView/Native/Android/Extensions/TextAlignmentExtensions.cs
class TextAlignmentExtensions (line 9) | [Android.Runtime.Preserve(AllMembers = true)]
method ToGravityFlags (line 17) | public static GravityFlags ToGravityFlags(this TextAlignment forms)
FILE: SettingsView/Native/Android/Extensions/ViewExtension.cs
class ViewExtension (line 7) | [Android.Runtime.Preserve(AllMembers = true)]
method GetParentOfType (line 10) | public static T? GetParentOfType<T>(this Android.Views.View view)
method GetParentOfType (line 18) | internal static T? GetParentOfType<T>(this Android.Views.IViewParent? ...
method GetParent (line 35) | public static IViewParent? GetParent(this Android.Views.View view)
method GetParent (line 40) | public static IViewParent? GetParent(this IViewParent? view)
FILE: SettingsView/Native/Android/Extensions/ViewHandlerExtension.cs
class ViewHandlerExtension (line 12) | [Android.Runtime.Preserve(AllMembers = true)]
method LayoutVirtualView (line 18) | public static Size LayoutVirtualView(
method MeasureVirtualView (line 40) | public static Size MeasureVirtualView(
FILE: SettingsView/Native/Android/FormsViewContainer.cs
class FormsViewContainer (line 15) | [Android.Runtime.Preserve(AllMembers = true)]
method FormsViewContainer (line 28) | public FormsViewContainer(Context context) : base(context)
method OnTouchEvent (line 45) | public override bool OnTouchEvent(MotionEvent e)
method Dispose (line 50) | protected override void Dispose(bool disposing)
method OnLayout (line 69) | protected override void OnLayout(bool changed, int l, int t, int r, in...
method OnMeasure (line 81) | protected override void OnMeasure(int widthMeasureSpec, int heightMeas...
method CellPropertyChanged (line 101) | public virtual void CellPropertyChanged(object sender, PropertyChanged...
method UpdateNativeCell (line 109) | public virtual void UpdateNativeCell()
method UpdateIsEnabled (line 114) | public void UpdateIsEnabled()
method CreateNewHandler (line 119) | protected virtual void CreateNewHandler(View view)
method DisconnectHandler (line 131) | public void DisconnectHandler()
method UpdateCell (line 140) | public void UpdateCell(View view)
FILE: SettingsView/Native/Android/HeaderFooterContainer.cs
class HeaderFooterContainer (line 13) | [Android.Runtime.Preserve(AllMembers = true)]
method HeaderFooterContainer (line 22) | public HeaderFooterContainer(Context context) : base(context)
method OnTouchEvent (line 39) | public override bool OnTouchEvent(Android.Views.MotionEvent e)
method Dispose (line 44) | protected override void Dispose(bool disposing)
method OnLayout (line 62) | protected override void OnLayout(bool changed, int l, int t, int r, in...
method OnMeasure (line 72) | protected override void OnMeasure(int widthMeasureSpec, int heightMeas...
method CellPropertyChanged (line 93) | public virtual void CellPropertyChanged(object sender, PropertyChanged...
method UpdateNativeCell (line 101) | public virtual void UpdateNativeCell()
method UpdateIsEnabled (line 106) | public void UpdateIsEnabled()
method UpdateCell (line 111) | public void UpdateCell(View view)
method DisconnectHandler (line 169) | public void DisconnectHandler()
method CreateNewHandler (line 178) | protected virtual void CreateNewHandler(View view)
method _contentView_MeasureInvalidated (line 190) | private void _contentView_MeasureInvalidated(object sender, EventArgs e)
method AddView (line 195) | public override void AddView(AView child)
FILE: SettingsView/Native/Android/ModelProxy.cs
type ViewType (line 11) | public enum ViewType
class ModelProxy (line 19) | [Android.Runtime.Preserve(AllMembers = true)]
method ModelProxy (line 30) | public ModelProxy(SettingsView settingsView,SettingsViewRecyclerAdapte...
method Dispose (line 43) | public void Dispose()
method OnRootCollectionChanged (line 62) | void OnRootCollectionChanged(object sender, NotifyCollectionChangedEve...
method OnRootSectionCollectionChanged (line 92) | void OnRootSectionCollectionChanged(object sender, NotifyCollectionCha...
method AddSection (line 128) | void AddSection(NotifyCollectionChangedEventArgs e)
method RemoveSection (line 164) | void RemoveSection(NotifyCollectionChangedEventArgs e)
method AddCell (line 176) | void AddCell(object sender, NotifyCollectionChangedEventArgs e)
method RemoveCell (line 200) | void RemoveCell(object sender, NotifyCollectionChangedEventArgs e)
method ReplaceCell (line 209) | void ReplaceCell(object sender, NotifyCollectionChangedEventArgs e)
method RowIndexFromChildCollection (line 232) | int RowIndexFromChildCollection(object sender,int index)
method RowIndexFromParentCollection (line 242) | int RowIndexFromParentCollection(int index)
method GetNextTypeIndex (line 250) | int GetNextTypeIndex()
method FillProxy (line 256) | public void FillProxy()
class RowInfo (line 299) | public class RowInfo
FILE: SettingsView/Native/Android/SVItemdecoration.cs
class SVItemdecoration (line 10) | [Android.Runtime.Preserve(AllMembers = true)]
method SVItemdecoration (line 16) | public SVItemdecoration(Drawable drawable,SettingsView settingsView)
method GetItemOffsets (line 22) | public override void GetItemOffsets(Rect outRect, View view, RecyclerV...
method OnDraw (line 33) | public override void OnDraw(Canvas c, RecyclerView parent, RecyclerVie...
method SectionIsVisible (line 65) | private bool SectionIsVisible(Section section)
method CellIsVisible (line 69) | private bool CellIsVisible(CellBase cell)
method Dispose (line 74) | protected override void Dispose(bool disposing)
FILE: SettingsView/Native/Android/SettingsViewLayoutManager.cs
class SettingsViewLayoutManager (line 8) | [Android.Runtime.Preserve(AllMembers = true)]
method SettingsViewLayoutManager (line 16) | public SettingsViewLayoutManager(Android.Content.Context context,Setti...
method GetDecoratedMeasuredHeight (line 22) | public override int GetDecoratedMeasuredHeight(Android.Views.View child)
method Dispose (line 31) | protected override void Dispose(bool disposing)
method OnLayoutCompleted (line 46) | public override void OnLayoutCompleted(RecyclerView.State state)
FILE: SettingsView/Native/Android/SettingsViewRecyclerAdapter.cs
class SettingsViewRecyclerAdapter (line 20) | [Android.Runtime.Preserve(AllMembers = true)]
method SettingsViewRecyclerAdapter (line 44) | public SettingsViewRecyclerAdapter(Context context, SettingsView setti...
method _settingsView_ModelChanged (line 61) | void _settingsView_ModelChanged(object sender, EventArgs e)
method OnSectionPropertyChanged (line 71) | void OnSectionPropertyChanged(object sender, System.ComponentModel.Pro...
method OnCellPropertyChanged (line 92) | void OnCellPropertyChanged(object sender, CellPropertyChangedEventArgs e)
method UpdateSectionVisible (line 101) | void UpdateSectionVisible(Section section)
method UpdateCellVisible (line 107) | void UpdateCellVisible(Section section, CellBase cell)
method UpdateSectionHeader (line 117) | void UpdateSectionHeader(Section section)
method UpdateSectionFooter (line 123) | void UpdateSectionFooter(Section section)
method GetItemId (line 141) | public override long GetItemId(int position)
method GetItemViewType (line 151) | public override int GetItemViewType(int position)
method OnCreateViewHolder (line 162) | public override RecyclerView.ViewHolder OnCreateViewHolder(ViewGroup p...
method OnBindViewHolder (line 203) | public override void OnBindViewHolder(RecyclerView.ViewHolder holder, ...
method OnClick (line 250) | public void OnClick(AView view)
method OnLongClick (line 270) | public virtual bool OnLongClick(AView v)
method DeselectRow (line 298) | public void DeselectRow()
method SelectedRow (line 313) | public void SelectedRow(AView cell, int position)
method Dispose (line 325) | protected override void Dispose(bool disposing)
method BindHeaderView (line 355) | void BindHeaderView(HeaderViewHolder holder)
method BindFooterView (line 408) | void BindFooterView(FooterViewHolder holder)
method BindCustomHeaderFooterView (line 448) | void BindCustomHeaderFooterView(ViewHolder holder, View formsView)
method BindContentView (line 456) | void BindContentView(ContentBodyViewHolder holder, int position)
method CellMoved (line 514) | public void CellMoved(int fromPos,int toPos)
FILE: SettingsView/Native/Android/ViewHolders.cs
class ViewHolder (line 10) | [Android.Runtime.Preserve(AllMembers = true)]
method ViewHolder (line 15) | public ViewHolder(AView view) : base(view) { }
method Dispose (line 17) | protected override void Dispose(bool disposing)
type IHeaderViewHolder (line 28) | [Android.Runtime.Preserve(AllMembers = true)]
type IFooterViewHolder (line 33) | [Android.Runtime.Preserve(AllMembers = true)]
class HeaderViewHolder (line 38) | [Android.Runtime.Preserve(AllMembers = true)]
method HeaderViewHolder (line 43) | public HeaderViewHolder(AView view) : base(view)
method Dispose (line 48) | protected override void Dispose(bool disposing)
class FooterViewHolder (line 59) | [Android.Runtime.Preserve(AllMembers = true)]
method FooterViewHolder (line 64) | public FooterViewHolder(AView view) : base(view)
method Dispose (line 69) | protected override void Dispose(bool disposing)
class CustomHeaderViewHolder (line 80) | [Android.Runtime.Preserve(AllMembers = true)]
method CustomHeaderViewHolder (line 83) | public CustomHeaderViewHolder(AView view) : base(view)
class CustomFooterViewHolder (line 89) | [Android.Runtime.Preserve(AllMembers = true)]
method CustomFooterViewHolder (line 92) | public CustomFooterViewHolder(AView view) : base(view)
class ContentBodyViewHolder (line 98) | [Android.Runtime.Preserve(AllMembers = true)]
method ContentBodyViewHolder (line 104) | public ContentBodyViewHolder(AView view) : base(view)
method Dispose (line 109) | protected override void Dispose(bool disposing)
FILE: SettingsView/Native/iOS/AiTableView.cs
class AiTableView (line 13) | public class AiTableView: UITableView, IUITableViewDragDelegate, IUITabl...
method AiTableView (line 24) | public AiTableView(SettingsView settingsView) : base(CGRect.Empty, UIT...
method Dispose (line 53) | protected override void Dispose(bool disposing)
method DisposeSubviews (line 68) | void DisposeSubviews(UIView view)
method UpdateSections (line 85) | internal void UpdateSections(NotifyCollectionChangedEventArgs e)
method UpdateItems (line 127) | internal void UpdateItems(NotifyCollectionChangedEventArgs e, int sect...
method UpdateSectionVisible (line 208) | internal void UpdateSectionVisible(Section section)
method UpdateCellVisible (line 216) | internal void UpdateCellVisible(Section section, CellBase cell)
method ReloadCell (line 225) | internal void ReloadCell(CellBase cell)
method UpdateSectionNoAnimation (line 234) | internal void UpdateSectionNoAnimation(Section section)
method UpdateSectionFade (line 242) | internal void UpdateSectionFade(Section section)
method GetItemsForBeginningDragSession (line 250) | public UIDragItem[] GetItemsForBeginningDragSession(UITableView tableV...
method PerformDrop (line 277) | public void PerformDrop(UITableView tableView, IUITableViewDropCoordin...
method GetPaths (line 342) | protected virtual NSIndexPath[] GetPaths(int section, int index, int c...
method CanHandleDropSession (line 356) | [Export("tableView:canHandleDropSession:")]
method DropSessionDidEnter (line 362) | [Export("tableView:dropSessionDidEnter:")]
method DropSessionDidEnd (line 367) | [Export("tableView:dropSessionDidEnd:")]
method DropSessionDidExit (line 372) | [Export("tableView:dropSessionDidExit:")]
method DropSessionDidUpdate (line 383) | [Export("tableView:dropSessionDidUpdate:withDestinationIndexPath:")]
FILE: SettingsView/Native/iOS/Cells/ButtonCellView.cs
class ButtonCellView (line 11) | [Foundation.Preserve(AllMembers = true)]
method ButtonCellView (line 22) | public ButtonCellView(CellBase virtualCell) : base(virtualCell)
method CellPropertyChanged (line 34) | public override void CellPropertyChanged(object sender, System.Compone...
method RowSelected (line 44) | public override void RowSelected(UITableView tableView, NSIndexPath in...
method UpdateCell (line 53) | public override void UpdateCell(UITableView tableView)
method Dispose (line 69) | protected override void Dispose(bool disposing)
method UpdateTitleAlignment (line 83) | internal void UpdateTitleAlignment()
method UpdateCommand (line 88) | internal void UpdateCommand()
method UpdateIsEnabled (line 120) | internal override void UpdateIsEnabled()
method Command_CanExecuteChanged (line 129) | void Command_CanExecuteChanged(object sender, EventArgs e)
FILE: SettingsView/Native/iOS/Cells/CellBaseView.cs
class CellBaseView (line 23) | [Foundation.Preserve(AllMembers = true)]
method CellBaseView (line 103) | public CellBaseView(CellBase virtualCell) : base(UIKit.UITableViewCell...
method CellPropertyChanged (line 124) | public virtual void CellPropertyChanged(object sender, PropertyChanged...
method ParentPropertyChanged (line 133) | public virtual void ParentPropertyChanged(object sender, PropertyChang...
method SectionPropertyChanged (line 192) | public virtual void SectionPropertyChanged(object sender, PropertyChan...
method RowSelected (line 201) | public virtual void RowSelected(UITableView tableView,NSIndexPath inde...
method RowLongPressed (line 205) | public virtual bool RowLongPressed(UITableView tableView,NSIndexPath i...
method UpdateWithForceLayout (line 214) | internal void UpdateWithForceLayout(System.Action updateAction)
method UpdateLayout (line 220) | internal void UpdateLayout()
method UpdateSelectedColor (line 225) | internal void UpdateSelectedColor()
method UpdateBackgroundColor (line 237) | internal void UpdateBackgroundColor()
method UpdateHintText (line 247) | internal void UpdateHintText()
method UpdateHintTextColor (line 256) | internal void UpdateHintTextColor()
method UpdateHintFont (line 271) | internal void UpdateHintFont()
method UpdateTitleText (line 289) | internal void UpdateTitleText()
method UpdateTitleColor (line 308) | internal void UpdateTitleColor()
method UpdateTitleFont (line 323) | internal void UpdateTitleFont()
method UpdateDescriptionText (line 341) | internal void UpdateDescriptionText()
method UpdateDescriptionFont (line 364) | internal void UpdateDescriptionFont()
method UpdateDescriptionColor (line 382) | internal void UpdateDescriptionColor()
method UpdateIsEnabled (line 398) | internal virtual void UpdateIsEnabled()
method UpdateIsVisible (line 406) | internal virtual void UpdateIsVisible()
method SetEnabledAppearance (line 419) | internal virtual void SetEnabledAppearance(bool isEnabled)
method UpdateIconSize (line 440) | internal void UpdateIconSize()
method UpdateIconRadius (line 478) | internal void UpdateIconRadius()
method UpdateIcon (line 491) | internal void UpdateIcon()
method SetImageSource (line 520) | void IImageSourcePartSetter.SetImageSource(UIImage platformImage)
method UpdateMinRowHeight (line 527) | internal void UpdateMinRowHeight()
method UpdateCell (line 548) | public virtual void UpdateCell(UITableView tableView = null)
method Dispose (line 559) | protected override void Dispose(bool disposing)
method SetUpHintLabel (line 621) | void SetUpHintLabel()
method SetRightMarginZero (line 647) | protected void SetRightMarginZero()
method SetUpContentView (line 656) | protected virtual void SetUpContentView()
FILE: SettingsView/Native/iOS/Cells/CheckboxCellView.cs
class CheckboxCellView (line 11) | [Foundation.Preserve(AllMembers = true)]
method CheckboxCellView (line 21) | public CheckboxCellView(CellBase virtualCell) : base(virtualCell)
method RowSelected (line 34) | public override void RowSelected(UITableView tableView, NSIndexPath in...
method UpdateCell (line 44) | public override void UpdateCell(UITableView tableView)
method CellPropertyChanged (line 56) | public override void CellPropertyChanged(object sender, System.Compone...
method ParentPropertyChanged (line 66) | public override void ParentPropertyChanged(object sender, System.Compo...
method Dispose (line 80) | protected override void Dispose(bool disposing)
method SetEnabledAppearance (line 95) | internal override void SetEnabledAppearance(bool isEnabled)
method CheckChanged (line 108) | void CheckChanged(UIButton button)
method UpdateChecked (line 113) | internal void UpdateChecked()
method UpdateAccentColor (line 118) | internal void UpdateAccentColor()
method ChangeCheckColor (line 130) | void ChangeCheckColor(CGColor accent)
class CheckBox (line 141) | public class CheckBox : UIButton
method CheckBox (line 163) | public CheckBox(CGRect rect) : base(rect)
method Draw (line 177) | public override void Draw(CGRect rect)
method PointInside (line 212) | public override bool PointInside(CGPoint point, UIEvent uievent)
FILE: SettingsView/Native/iOS/Cells/CommandCellView.cs
class CommandCellView (line 12) | [Foundation.Preserve(AllMembers = true)]
method CommandCellView (line 23) | public CommandCellView(CellBase virtualCell) : base(virtualCell)
method CellPropertyChanged (line 40) | public override void CellPropertyChanged(object sender, System.Compone...
method RowSelected (line 50) | public override void RowSelected(UITableView tableView, NSIndexPath in...
method UpdateCell (line 62) | public override void UpdateCell(UITableView tableView)
method Dispose (line 73) | protected override void Dispose(bool disposing)
method UpdateCommand (line 87) | internal void UpdateCommand()
method UpdateIsEnabled (line 119) | internal override void UpdateIsEnabled()
method Command_CanExecuteChanged (line 128) | void Command_CanExecuteChanged(object sender, EventArgs e)
FILE: SettingsView/Native/iOS/Cells/CustomCellContent.cs
class CustomCellContent (line 15) | [Foundation.Preserve(AllMembers = true)]
method CustomCellContent (line 29) | public CustomCellContent()
method Dispose (line 33) | protected override void Dispose(bool disposing)
method UpdateNativeCell (line 83) | public virtual void UpdateNativeCell()
method CellPropertyChanged (line 88) | public virtual void CellPropertyChanged(object sender, PropertyChanged...
method UpdateIsEnabled (line 96) | protected virtual void UpdateIsEnabled()
method UpdateCell (line 101) | public virtual void UpdateCell(View newCell, UITableView tableView)
method OnInnerLayoutSizeChanged (line 227) | private void OnInnerLayoutSizeChanged(object sender, EventArgs e)
method OnMeasureInvalidated (line 232) | private void OnMeasureInvalidated(object sender, EventArgs e)
method ForceLayout (line 237) | async Task ForceLayout(CancellationToken token)
method ArrangeSubView (line 295) | void ArrangeSubView(IPlatformViewHandler handler)
method LayoutDispacher (line 325) | void LayoutDispacher()
method ElementDescendants (line 332) | internal static IEnumerable<VisualElement> ElementDescendants(Element ...
FILE: SettingsView/Native/iOS/Cells/CustomCellView.cs
class CustomCellView (line 8) | [Foundation.Preserve(AllMembers = true)]
method CustomCellView (line 17) | public CustomCellView(CellBase virtualCell) : base(virtualCell)
method UpdateConstraints (line 22) | public override void UpdateConstraints()
method SetUpContentView (line 29) | protected override void SetUpContentView()
method UpdateContent (line 60) | internal virtual void UpdateContent(UITableView tableView)
method CellPropertyChanged (line 81) | public override void CellPropertyChanged(object sender, System.Compone...
method RowSelected (line 91) | public override void RowSelected(UITableView tableView, NSIndexPath in...
method RowLongPressed (line 104) | public override bool RowLongPressed(UITableView tableView, NSIndexPath...
method SetHighlighted (line 116) | public override void SetHighlighted(bool highlighted, bool animated)
method SetSelected (line 133) | public override void SetSelected(bool selected, bool animated)
method BackupSubviewsColor (line 146) | void BackupSubviewsColor(UIView view, Dictionary<UIView, UIColor> colors)
method RestoreSubviewsColor (line 156) | void RestoreSubviewsColor(UIView view, Dictionary<UIView, UIColor> col...
method UpdateCell (line 172) | public override void UpdateCell(UITableView tableView)
method Dispose (line 184) | protected override void Dispose(bool disposing)
method UpdateCommand (line 206) | internal virtual void UpdateCommand()
method UpdateIsEnabled (line 237) | internal override void UpdateIsEnabled()
method Command_CanExecuteChanged (line 246) | protected virtual void Command_CanExecuteChanged(object sender, EventA...
FILE: SettingsView/Native/iOS/Cells/DatePickerCellView.cs
class DatePickerCellView (line 12) | [Foundation.Preserve(AllMembers = true)]
method DatePickerCellView (line 28) | public DatePickerCellView(CellBase formsCell) : base(formsCell)
method UpdateCell (line 44) | public override void UpdateCell(UITableView tableView)
method CellPropertyChanged (line 57) | public override void CellPropertyChanged(object sender, System.Compone...
method RowSelected (line 67) | public override void RowSelected(UITableView tableView, NSIndexPath in...
method Dispose (line 78) | protected override void Dispose(bool disposing)
method LayoutSubviews (line 94) | public override void LayoutSubviews()
method SetUpDatePicker (line 101) | void SetUpDatePicker()
method SetToday (line 143) | void SetToday()
method Done (line 151) | void Done()
method UpdateDate (line 158) | internal void UpdateDate()
method UpdateMaximumDate (line 174) | internal void UpdateMaximumDate()
method UpdateMinimumDate (line 180) | internal void UpdateMinimumDate()
method UpdateTodayText (line 186) | internal void UpdateTodayText()
FILE: SettingsView/Native/iOS/Cells/EntryCellView.cs
class EntryCellView (line 16) | [Foundation.Preserve(AllMembers = true)]
method EntryCellView (line 28) | public EntryCellView(CellBase virtualCell) : base(virtualCell)
method UpdateCell (line 53) | public override void UpdateCell(UITableView tableView)
method CellPropertyChanged (line 74) | public override void CellPropertyChanged(object sender, System.Compone...
method ParentPropertyChanged (line 84) | public override void ParentPropertyChanged(object sender, System.Compo...
method RowSelected (line 105) | public override void RowSelected(UITableView tableView, NSIndexPath in...
method Dispose (line 115) | protected override void Dispose(bool disposing)
method SetEnabledAppearance (line 142) | internal override void SetEnabledAppearance(bool isEnabled)
method UpdateValueText (line 155) | internal void UpdateValueText()
method UpdateValueTextFont (line 164) | internal void UpdateValueTextFont()
method UpdateValueTextColor (line 184) | internal void UpdateValueTextColor()
method UpdateKeyboard (line 197) | internal void UpdateKeyboard()
method UpdatePlaceholder (line 202) | internal void UpdatePlaceholder()
method UpdateTextAlignment (line 216) | internal void UpdateTextAlignment()
method UpdateIsPassword (line 222) | internal void UpdateIsPassword()
method UpdateShowDoneButton (line 227) | internal void UpdateShowDoneButton()
method _textField_EditingChanged (line 251) | void _textField_EditingChanged(object sender, EventArgs e)
method ValueField_EditingDidBegin (line 257) | void ValueField_EditingDidBegin(object sender, EventArgs e)
method ValueField_EditingDidEnd (line 263) | void ValueField_EditingDidEnd(object sender, EventArgs e)
method EntryCell_Focused (line 274) | void EntryCell_Focused(object sender, EventArgs e)
method OnShouldReturn (line 280) | bool OnShouldReturn(UITextField view)
FILE: SettingsView/Native/iOS/Cells/LabelCellView.cs
class LabelCellView (line 10) | public class LabelCellView: CellBaseView
method LabelCellView (line 23) | public LabelCellView(CellBase virtualCell) : base(virtualCell)
method ParentPropertyChanged (line 38) | public override void ParentPropertyChanged(object sender, PropertyChan...
method UpdateCell (line 57) | public override void UpdateCell(UITableView tableView)
method SetEnabledAppearance (line 69) | internal override void SetEnabledAppearance(bool isEnabled)
method UpdateValueText (line 85) | internal void UpdateValueText()
method UpdateValueTextFont (line 90) | internal void UpdateValueTextFont()
method UpdateValueTextColor (line 108) | internal void UpdateValueTextColor()
method Dispose (line 125) | protected override void Dispose(bool disposing)
FILE: SettingsView/Native/iOS/Cells/NumberPickerCellView.cs
class NumberPickerCellView (line 13) | [Foundation.Preserve(AllMembers = true)]
method NumberPickerCellView (line 32) | public NumberPickerCellView(CellBase virtualCell) : base(virtualCell)
method CellPropertyChanged (line 51) | public override void CellPropertyChanged(object sender, System.Compone...
method RowSelected (line 61) | public override void RowSelected(UITableView tableView, NSIndexPath in...
method UpdateCell (line 70) | public override void UpdateCell(UITableView tableView)
method Dispose (line 87) | protected override void Dispose(bool disposing)
method SetUpPicker (line 107) | void SetUpPicker()
method UpdateNumber (line 143) | internal virtual void UpdateNumber()
method FormatNumber (line 149) | private string FormatNumber(int? number)
method UpdateNumberList (line 156) | internal void UpdateNumberList()
method UpdateTitle (line 162) | internal void UpdateTitle()
method UpdateCommand (line 169) | internal void UpdateCommand()
method Model_UpdatePickerFromModel (line 174) | void Model_UpdatePickerFromModel(object sender, EventArgs e)
method LayoutSubviews (line 183) | public override void LayoutSubviews()
method Select (line 192) | void Select(int? number)
FILE: SettingsView/Native/iOS/Cells/NumberPickerSource.cs
class NumberPickerSource (line 7) | [Foundation.Preserve(AllMembers = true)]
method NumberPickerSource (line 12) | public NumberPickerSource(string unit)
method GetComponentCount (line 32) | public override nint GetComponentCount(UIPickerView picker)
method GetRowsInComponent (line 43) | public override nint GetRowsInComponent(UIPickerView pickerView, nint ...
method GetTitle (line 55) | public override string GetTitle(UIPickerView picker, nint row, nint co...
method Selected (line 70) | public override void Selected(UIPickerView picker, nint row, nint comp...
method SetNumbers (line 91) | public void SetNumbers(int min, int max)
method OnUpdatePickerFormModel (line 106) | public void OnUpdatePickerFormModel()
method SelectItem (line 111) | private int SelectItem(int row)
FILE: SettingsView/Native/iOS/Cells/RadioCellView.cs
class RadioCellView (line 12) | [Foundation.Preserve(AllMembers = true)]
method RadioCellView (line 40) | public RadioCellView(CellBase virtualCell) : base(virtualCell)
method Dispose (line 49) | protected override void Dispose(bool disposing)
method UpdateCell (line 57) | public override void UpdateCell(UITableView tableView)
method CellPropertyChanged (line 69) | public override void CellPropertyChanged(object sender, PropertyChange...
method ParentPropertyChanged (line 79) | public override void ParentPropertyChanged(object sender, PropertyChan...
method SectionPropertyChanged (line 97) | public override void SectionPropertyChanged(object sender, PropertyCha...
method RowSelected (line 111) | public override void RowSelected(UITableView tableView, NSIndexPath in...
method UpdateSelectedValue (line 120) | void UpdateSelectedValue()
method UpdateAccentColor (line 138) | internal void UpdateAccentColor()
FILE: SettingsView/Native/iOS/Cells/SimpleCheckCellView.cs
class SimpleCheckCellView (line 9) | [Foundation.Preserve(AllMembers = true)]
method SimpleCheckCellView (line 14) | public SimpleCheckCellView(CellBase virtualCell): base(virtualCell)
method ParentPropertyChanged (line 19) | public override void ParentPropertyChanged(object sender, PropertyChan...
method RowSelected (line 28) | public override void RowSelected(UITableView tableView, NSIndexPath in...
method UpdateChecked (line 35) | internal void UpdateChecked()
method UpdateAccentColor (line 41) | internal void UpdateAccentColor()
FILE: SettingsView/Native/iOS/Cells/SwitchCellView.cs
class SwitchCellView (line 12) | [Foundation.Preserve(AllMembers = true)]
method SwitchCellView (line 23) | public SwitchCellView(CellBase virtualCell) : base(virtualCell)
method RowSelected (line 32) | public override void RowSelected(UITableView tableView, NSIndexPath in...
method CellPropertyChanged (line 43) | public override void CellPropertyChanged(object sender, System.Compone...
method ParentPropertyChanged (line 53) | public override void ParentPropertyChanged(object sender, System.Compo...
method UpdateCell (line 65) | public override void UpdateCell(UITableView tableView)
method Dispose (line 80) | protected override void Dispose(bool disposing)
method SetEnabledAppearance (line 96) | internal override void SetEnabledAppearance(bool isEnabled)
method _switch_ValueChanged (line 109) | void _switch_ValueChanged(object sender, EventArgs e)
method UpdateOn (line 114) | internal void UpdateOn()
method UpdateAccentColor (line 122) | internal void UpdateAccentColor()
FILE: SettingsView/Native/iOS/Cells/TextPickerCellView.cs
class TextPickerCellView (line 14) | [Foundation.Preserve(AllMembers = true)]
method TextPickerCellView (line 33) | public TextPickerCellView(CellBase virtualCell) : base(virtualCell)
method CellPropertyChanged (line 52) | public override void CellPropertyChanged(object sender, System.Compone...
method RowSelected (line 62) | public override void RowSelected(UITableView tableView, NSIndexPath in...
method UpdateCell (line 71) | public override void UpdateCell(UITableView tableView)
method Dispose (line 85) | protected override void Dispose(bool disposing)
method SetUpPicker (line 105) | void SetUpPicker()
method UpdateSelectedItem (line 141) | internal void UpdateSelectedItem()
method UpdateItems (line 147) | internal void UpdateItems()
method UpdateTitle (line 158) | internal void UpdateTitle()
method UpdateCommand (line 165) | internal void UpdateCommand()
method Model_UpdatePickerFromModel (line 170) | void Model_UpdatePickerFromModel(object sender, EventArgs e)
method LayoutSubviews (line 179) | public override void LayoutSubviews()
method Select (line 186) | void Select(object item)
FILE: SettingsView/Native/iOS/Cells/TextPickerSource.cs
class TextPickerSource (line 7) | [Foundation.Preserve(AllMembers = true)]
method GetComponentCount (line 26) | public override nint GetComponentCount(UIPickerView picker)
method GetRowsInComponent (line 37) | public override nint GetRowsInComponent(UIPickerView pickerView, nint ...
method GetTitle (line 49) | public override string GetTitle(UIPickerView picker, nint row, nint co...
method Selected (line 61) | public override void Selected(UIPickerView picker, nint row, nint comp...
method SetItems (line 81) | public void SetItems(IList items)
method OnUpdatePickerFormModel (line 89) | public void OnUpdatePickerFormModel()
FILE: SettingsView/Native/iOS/Cells/TimePickerCellView.cs
class TimePickerCellView (line 12) | [Foundation.Preserve(AllMembers = true)]
method TimePickerCellView (line 29) | public TimePickerCellView(CellBase virtualCell) : base(virtualCell)
method UpdateCell (line 45) | public override void UpdateCell(UITableView tableView)
method CellPropertyChanged (line 57) | public override void CellPropertyChanged(object sender, System.Compone...
method RowSelected (line 76) | public override void RowSelected(UITableView tableView, NSIndexPath in...
method Dispose (line 87) | protected override void Dispose(bool disposing)
method LayoutSubviews (line 105) | public override void LayoutSubviews()
method SetUpTimePicker (line 112) | void SetUpTimePicker()
method Canceled (line 147) | void Canceled()
method Done (line 152) | void Done()
method UpdateTime (line 159) | internal void UpdateTime()
method UpdatePickerTitle (line 166) | internal void UpdatePickerTitle()
FILE: SettingsView/Native/iOS/CustomHeaderFooterView.cs
class CustomHeaderView (line 15) | public class CustomHeaderView : CustomHeaderFooterView
method CustomHeaderView (line 17) | public CustomHeaderView()
method CustomHeaderView (line 21) | public CustomHeaderView(NSCoder coder) : base(coder)
method CustomHeaderView (line 25) | public CustomHeaderView(CGRect frame) : base(frame)
method CustomHeaderView (line 29) | public CustomHeaderView(NSString reuseIdentifier) : base(reuseIdentifier)
method CustomHeaderView (line 33) | protected CustomHeaderView(NSObjectFlag t) : base(t)
method CustomHeaderView (line 37) | protected internal CustomHeaderView(NativeHandle handle) : base(handle)
class CustomFooterView (line 42) | public class CustomFooterView : CustomHeaderFooterView
method CustomFooterView (line 44) | public CustomFooterView()
method CustomFooterView (line 48) | public CustomFooterView(NSString reuseIdentifier) : base(reuseIdentifier)
method CustomFooterView (line 52) | public CustomFooterView(NSCoder coder) : base(coder)
method CustomFooterView (line 56) | public CustomFooterView(CGRect frame) : base(frame)
method CustomFooterView (line 60) | protected CustomFooterView(NSObjectFlag t) : base(t)
method CustomFooterView (line 64) | protected internal CustomFooterView(NativeHandle handle) : base(handle)
class CustomHeaderFooterView (line 69) | public class CustomHeaderFooterView:UITableViewHeaderFooterView
method CustomHeaderFooterView (line 77) | public CustomHeaderFooterView()
method CustomHeaderFooterView (line 81) | public CustomHeaderFooterView(NSCoder coder) : base(coder)
method CustomHeaderFooterView (line 85) | protected CustomHeaderFooterView(NSObjectFlag t) : base(t)
method CustomHeaderFooterView (line 89) | protected internal CustomHeaderFooterView(NativeHandle handle) : base(...
method CustomHeaderFooterView (line 93) | public CustomHeaderFooterView(CGRect frame) : base(frame)
method CustomHeaderFooterView (line 97) | public CustomHeaderFooterView(NSString reuseIdentifier) : base(reuseId...
method Dispose (line 101) | protected override void Dispose(bool disposing)
method UpdateNativeCell (line 140) | public virtual void UpdateNativeCell()
method CellPropertyChanged (line 145) | public virtual void CellPropertyChanged(object sender, PropertyChanged...
method UpdateIsEnabled (line 153) | protected virtual void UpdateIsEnabled()
method UpdateCell (line 158) | public virtual void UpdateCell(View newCell,UITableView tableView)
method OnInnerLayoutSizeChanged (line 275) | private void OnInnerLayoutSizeChanged(object sender, EventArgs e)
method OnMeasureInvalidated (line 280) | private void OnMeasureInvalidated(object sender, EventArgs e)
method GetNewHandler (line 285) | protected virtual IPlatformViewHandler? GetNewHandler()
method ArrangeSubView (line 306) | protected virtual void ArrangeSubView(IPlatformViewHandler handler)
method ForceLayout (line 319) | async Task ForceLayout(CancellationToken token)
method LayoutDispatcher (line 371) | void LayoutDispatcher()
FILE: SettingsView/Native/iOS/Extensions/DisposeHelpers.cs
class DisposeHelpers (line 6) | public static class DisposeHelpers
method DisposeModalAndChildHandlers (line 12) | public static void DisposeModalAndChildHandlers(this Microsoft.Maui.IE...
method DisposeHandlersAndChildren (line 53) | public static void DisposeHandlersAndChildren(this IPlatformViewHandle...
FILE: SettingsView/Native/iOS/Extensions/NSObjectExtension.cs
class NSObjectExtension (line 6) | public static class NSObjectExtension
method DisposeIfDisposable (line 12) | public static void DisposeIfDisposable(this NSObject target)
method IsDisposed (line 25) | public static bool IsDisposed(this NSObject target)
FILE: SettingsView/Native/iOS/Extensions/StackViewAlignmentExtensions.cs
class StackViewAlignmentExtensions (line 9) | [Foundation.Preserve(AllMembers = true)]
method ToNativeVertical (line 17) | public static UIStackViewAlignment ToNativeVertical(this LayoutAlignme...
method ToNativeHorizontal (line 36) | public static UIStackViewAlignment ToNativeHorizontal(this LayoutAlign...
FILE: SettingsView/Native/iOS/Extensions/TextAlignmentExtensions.cs
class TextAlignmentExtensions (line 9) | [Foundation.Preserve(AllMembers = true)]
method ToUITextAlignment (line 17) | public static UITextAlignment ToUITextAlignment(this TextAlignment forms)
FILE: SettingsView/Native/iOS/Extensions/ThicknessExtensions.cs
class ThicknessExtensions (line 10) | [Foundation.Preserve(AllMembers = true)]
method ToUIEdgeInsets (line 18) | public static UIEdgeInsets ToUIEdgeInsets(this Thickness forms)
FILE: SettingsView/Native/iOS/KeyboardInsetTracker.cs
class KeyboardInsetTracker (line 14) | [Foundation.Preserve(AllMembers = true)]
method KeyboardInsetTracker (line 25) | public KeyboardInsetTracker(UIView targetView, Func<UIWindow> fetchWin...
method Dispose (line 35) | public void Dispose()
method UpdateInsets (line 46) | internal void UpdateInsets()
method OnKeyboardHidden (line 87) | void OnKeyboardHidden(object sender, UIKeyboardEventArgs args)
method OnKeyboardShown (line 93) | void OnKeyboardShown(object sender, UIKeyboardEventArgs args)
method FindFirstResponder (line 100) | UIView FindFirstResponder(UIView view)
class KeyboardObserver (line 116) | internal static class KeyboardObserver
method KeyboardObserver (line 118) | static KeyboardObserver()
method OnKeyboardHidden (line 128) | static void OnKeyboardHidden(object sender, UIKeyboardEventArgs args)
method OnKeyboardShown (line 135) | static void OnKeyboardShown(object sender, UIKeyboardEventArgs args)
FILE: SettingsView/Native/iOS/PaddingLabel.cs
class PaddingLabel (line 7) | public class PaddingLabel : UILabel
method DrawText (line 19) | public override void DrawText(CGRect rect)
FILE: SettingsView/Native/iOS/SettingsTableSource.cs
class SettingsTableSource (line 19) | [Foundation.Preserve(AllMembers = true)]
method SettingsTableSource (line 40) | public SettingsTableSource(SettingsView settingsView)
method GetCell (line 63) | public override UITableViewCell GetCell(UITableView tableView, NSIndex...
method GetHeightForRow (line 114) | public override NFloat GetHeightForRow(UITableView tableView, NSIndexP...
method GetHeightForHeader (line 143) | public override NFloat GetHeightForHeader(UITableView tableView, nint ...
method GetViewForHeader (line 175) | public override UIView GetViewForHeader(UITableView tableView, nint se...
method GetHeightForFooter (line 217) | public override NFloat GetHeightForFooter(UITableView tableView, nint ...
method GetViewForFooter (line 252) | public override UIView GetViewForFooter(UITableView tableView, nint se...
method GetNativeSectionHeaderFooterView (line 288) | UIView GetNativeSectionHeaderFooterView(View formsView, UITableView ta...
method NumberOfSections (line 302) | public override nint NumberOfSections(UITableView tableView)
method RowsInSection (line 314) | public override nint RowsInSection(UITableView tableview, nint section)
method ShouldShowMenu (line 321) | public override bool ShouldShowMenu(UITableView tableView, NSIndexPath...
method CanPerformAction (line 346) | public override bool CanPerformAction(UITableView tableView, Selector ...
method PerformAction (line 351) | public override void PerformAction(UITableView tableView, Selector act...
method SectionIndexTitles (line 360) | public override string[] SectionIndexTitles(UITableView tableView)
method RowSelected (line 370) | public override void RowSelected(UITableView tableView, NSIndexPath in...
method Dispose (line 385) | protected override void Dispose(bool disposing)
FILE: SettingsView/Native/iOS/TextFooterView.cs
class TextFooterView (line 10) | public class TextFooterView : UITableViewHeaderFooterView
method TextFooterView (line 15) | public TextFooterView()
method TextFooterView (line 19) | public TextFooterView(NSCoder coder) : base(coder)
method TextFooterView (line 23) | protected TextFooterView(NSObjectFlag t) : base(t)
method TextFooterView (line 27) | protected internal TextFooterView(NativeHandle handle) : base(handle)
method TextFooterView (line 49) | public TextFooterView(CGRect frame) : base(frame)
method TextFooterView (line 53) | public TextFooterView(NSString reuseIdentifier) : base(reuseIdentifier)
method Dispose (line 57) | protected override void Dispose(bool disposing)
FILE: SettingsView/Native/iOS/TextHeaderView.cs
class TextHeaderView (line 10) | public class TextHeaderView : UITableViewHeaderFooterView
method TextHeaderView (line 17) | public TextHeaderView()
method TextHeaderView (line 21) | public TextHeaderView(NSCoder coder) : base(coder)
method TextHeaderView (line 25) | protected TextHeaderView(NSObjectFlag t) : base(t)
method TextHeaderView (line 29) | protected internal TextHeaderView(NativeHandle handle) : base(handle)
method TextHeaderView (line 52) | public TextHeaderView(CGRect frame) : base(frame)
method TextHeaderView (line 56) | public TextHeaderView(NSString reuseIdentifier) : base(reuseIdentifier)
method SetVerticalAlignment (line 60) | public void SetVerticalAlignment(LayoutAlignment align)
method Dispose (line 99) | protected override void Dispose(bool disposing)
FILE: SettingsView/NaturalComparer.cs
type NaturalSortOrder (line 12) | public enum NaturalSortOrder : int
type NaturalComparerOptions (line 27) | [Flags()]
class NaturalComparer (line 65) | public class NaturalComparer : IComparer<string>, IComparer
type CharTypes (line 70) | private enum CharTypes : uint
method NaturalComparer (line 104) | public NaturalComparer()
method NaturalComparer (line 111) | public NaturalComparer(NaturalSortOrder order)
method NaturalComparer (line 119) | public NaturalComparer(NaturalSortOrder order, NaturalComparerOptions ...
method NaturalComparer (line 128) | public NaturalComparer(NaturalSortOrder order, NaturalComparerOptions ...
method Compare (line 237) | public int Compare(string s1, string s2)
method Compare (line 252) | int IComparer.Compare(object s1, object s2)
method LocalCompare (line 267) | protected virtual int LocalCompare(string s1, string s2)
method SkipIgnoreCharacter (line 376) | private void SkipIgnoreCharacter(string source, ref int pos)
method GetCharType (line 392) | private CharTypes GetCharType(char c, char back, CharTypes state)
method ConvertChar (line 552) | private string ConvertChar(string source)
method ConvertHalf (line 579) | private void ConvertHalf(StringBuilder source)
method ConvertUpperCase (line 612) | private void ConvertUpperCase(StringBuilder source)
method ConvertKatakana (line 625) | private void ConvertKatakana(StringBuilder source)
method GetNumber (line 766) | private bool GetNumber(string source, CharTypes type, ref int pos, out...
method CompareChar (line 804) | private int CompareChar(char c1, char c2)
type INumberComverter (line 824) | private interface INumberComverter
method AddChar (line 844) | bool AddChar(char number);
class NumberConverter (line 855) | private class NumberConverter : INumberComverter
method NumberConverter (line 880) | public NumberConverter(char number)
method AddChar (line 927) | public bool AddChar(char number)
class RomanNumberConverter (line 976) | private class RomanNumberConverter : INumberComverter
method RomanNumberConverter (line 999) | public RomanNumberConverter(char alpha)
method AddChar (line 1052) | public bool AddChar(char roman)
method Parse (line 1098) | protected long Parse(char alpha)
method IsAlpha (line 1117) | protected bool IsAlpha(char alpha)
class JpRomanNumberConverter (line 1130) | private class JpRomanNumberConverter : INumberComverter
method JpRomanNumberConverter (line 1153) | public JpRomanNumberConverter(char roman)
method AddChar (line 1211) | public bool AddChar(char roman)
method Parse (line 1260) | protected long Parse(char roman)
class CircleNumberConverter (line 1284) | private class CircleNumberConverter : INumberComverter
method CircleNumberConverter (line 1297) | public CircleNumberConverter(char number)
method AddChar (line 1360) | public bool AddChar(char number)
class KanjiNumberConverter (line 1373) | private class KanjiNumberConverter : INumberComverter
method KanjiNumberConverter (line 1398) | public KanjiNumberConverter(char number)
method AddChar (line 1443) | public bool AddChar(char kanji)
method Parse (line 1520) | protected long Parse(char kanji)
FILE: SettingsView/Pages/PickerPage.xaml.cs
class PickerPage (line 7) | public partial class PickerPage : ContentPage
method PickerPage (line 15) | public PickerPage(PickerCell cell)
method Model_RowSelected (line 41) | private void Model_RowSelected(CellBase cell)
method SetUpProperties (line 46) | void SetUpProperties()
method OnDisappearing (line 117) | protected override void OnDisappearing()
method UpdateSelected (line 147) | void UpdateSelected(DisplayValue item)
method SelectedSingle (line 160) | void SelectedSingle(DisplayValue item)
method SelectedMulti (line 178) | void SelectedMulti(DisplayValue item)
method DoPickToClose (line 198) | void DoPickToClose()
class DisplayValue (line 207) | public class DisplayValue : BindableBase
method DisplayValue (line 234) | public DisplayValue(string display, string subDisplay, bool selected, ...
FILE: SettingsView/Section.cs
class Section (line 9) | public class Section: SectionBase
method Section (line 14) | public Section()
method Section (line 24) | public Section(string title) : this()
method OnBindingContextChanged (line 32) | protected override void OnBindingContextChanged()
method MoveSourceItemWithoutNotify (line 50) | public void MoveSourceItemWithoutNotify(int from, int to)
method MoveCellWithoutNotify (line 80) | public void MoveCellWithoutNotify(int from, int to)
method DeleteSourceItemWithoutNotify (line 89) | public (CellBase Cell, Object Item) DeleteSourceItemWithoutNotify(int ...
method InsertSourceItemWithoutNotify (line 114) | public void InsertSourceItemWithoutNotify(CellBase cell, Object item, ...
method DeleteCellWithoutNotify (line 134) | public CellBase DeleteCellWithoutNotify(int from)
method InsertCellWithoutNotify (line 143) | public void InsertCellWithoutNotify(CellBase cell, int to)
method OnCollectionChanged (line 150) | void OnCollectionChanged(object sender, NotifyCollectionChangedEventAr...
method OnPropertyChanged (line 163) | void OnPropertyChanged(object sender, PropertyChangedEventArgs e)
method OnItemPropertyChanged (line 168) | void OnItemPropertyChanged(object sender, PropertyChangedEventArgs e)
method ItemsChanged (line 398) | static void ItemsChanged(BindableObject bindable, object oldValue, obj...
method OnItemsSourceCollectionChanged (line 461) | void OnItemsSourceCollectionChanged(object sender, NotifyCollectionCha...
method CreateChildViewFor (line 518) | static CellBase CreateChildViewFor(DataTemplate template, object item,...
FILE: SettingsView/SectionBase.cs
class SectionBase (line 8) | public class SectionBase: Element, IList<CellBase>, IVisualTreeElement, ...
method SectionBase (line 19) | protected SectionBase()
method SectionBase (line 27) | protected SectionBase(string title)
method Add (line 48) | public void Add(CellBase item)
method Clear (line 57) | public void Clear()
method Contains (line 69) | public bool Contains(CellBase item)
method CopyTo (line 74) | public void CopyTo(CellBase[] array, int arrayIndex)
method Remove (line 89) | public bool Remove(CellBase item)
method GetEnumerator (line 98) | IEnumerator IEnumerable.GetEnumerator()
method GetEnumerator (line 103) | public IEnumerator<CellBase> GetEnumerator()
method IndexOf (line 108) | public int IndexOf(CellBase item)
method Insert (line 113) | public void Insert(int index, CellBase item)
method RemoveAt (line 128) | public void RemoveAt(int index)
method Add (line 145) | public void Add(IEnumerable<CellBase> items)
method OnBindingContextChanged (line 153) | protected override void OnBindingContextChanged()
method OnChildrenChanged (line 164) | void OnChildrenChanged(object sender, NotifyCollectionChangedEventArgs...
method GetVisualChildren (line 178) | IReadOnlyList<IVisualTreeElement> IVisualTreeElement.GetVisualChildren...
method GetVisualParent (line 179) | IVisualTreeElement IVisualTreeElement.GetVisualParent() => null;
FILE: SettingsView/SettingsModel.cs
class SettingsModel (line 10) | public class SettingsModel
method SettingsModel (line 22) | public SettingsModel(SettingsRoot settingsRoot)
method GetCell (line 33) | public virtual CellBase GetCell(int section, int row)
method GetRowCount (line 45) | public virtual int GetRowCount(int section)
method GetSectionCount (line 54) | public virtual int GetSectionCount()
method GetSection (line 64) | public virtual Section GetSection(int section)
method GetSectionFromCell (line 74) | public virtual Section GetSectionFromCell(CellBase cell)
method GetSectionIndex (line 84) | public virtual int GetSectionIndex(Section section)
method GetSectionTitle (line 94) | public virtual string GetSectionTitle(int section)
method GetSectionIndexTitles (line 99) | public virtual string[] GetSectionIndexTitles()
method GetSectionHeaderView (line 110) | public virtual View GetSectionHeaderView(int section)
method GetFooterText (line 120) | public virtual string GetFooterText(int section)
method GetSectionFooterView (line 130) | public virtual View GetSectionFooterView(int section)
method OnRowSelected (line 139) | protected virtual void OnRowSelected(object item)
method GetHeaderHeight (line 149) | public virtual double GetHeaderHeight(int section)
method OnRowSelected (line 154) | public void OnRowSelected(int section, int row)
method OnRowSelected (line 161) | public void OnRowSelected(CellBase cell)
method GetPath (line 168) | internal static Tuple<int, int> GetPath(CellBase item)
method SetPath (line 177) | internal static void SetPath(CellBase item, Tuple<int, int> index)
FILE: SettingsView/SettingsRoot.cs
class SettingsRoot (line 10) | public class SettingsRoot : TableSectionBase<Section>
method SettingsRoot (line 15) | public SettingsRoot()
method ChildCollectionChanged (line 33) | void ChildCollectionChanged(object sender, NotifyCollectionChangedEven...
method ChildPropertyChanged (line 38) | void ChildPropertyChanged(object sender, PropertyChangedEventArgs e)
method OnCellPropertyChanged (line 43) | void OnCellPropertyChanged(object sender, CellPropertyChangedEventArgs e)
method SetupEvents (line 48) | void SetupEvents()
FILE: SettingsView/SettingsView.DefineProperites.cs
class SettingsView (line 12) | public partial class SettingsView
method ItemsChanged (line 997) | static void ItemsChanged(BindableObject bindable, object oldValue, obj...
method OnItemsSourceCollectionChanged (line 1058) | void OnItemsSourceCollectionChanged(object sender, NotifyCollectionCha...
method SendItemDropped (line 1109) | internal void SendItemDropped(Section section,CellBase cell)
method CreateChildViewFor (line 1116) | static Section CreateChildViewFor(DataTemplate template, object item, ...
FILE: SettingsView/SettingsView.cs
class SettingsView (line 9) | [ContentProperty("Root")]
method ClearCache (line 16) | public static void ClearCache()
method SettingsView (line 50) | public SettingsView()
method OnBindingContextChanged (line 89) | protected override void OnBindingContextChanged()
method OnSectionPropertyChanged (line 96) | void OnSectionPropertyChanged(object sender, System.ComponentModel.Pro...
method OnCellPropertyChanged (line 101) | void OnCellPropertyChanged(object sender, CellPropertyChangedEventArgs e)
method OnPropertyChanged (line 110) | protected override void OnPropertyChanged(string propertyName = null)
method OnCollectionChanged (line 139) | public void OnCollectionChanged(object sender, NotifyCollectionChanged...
method OnSectionCollectionChanged (line 174) | public void OnSectionCollectionChanged(object sender, NotifyCollection...
method OnModelChanged (line 186) | void OnModelChanged()
FILE: SettingsView/SettingsViewConfiguration.cs
class SettingsViewConfiguration (line 4) | internal static class SettingsViewConfiguration
FILE: SettingsView/SizeTypeConverter.cs
class SizeConverter (line 10) | public class SizeConverter : TypeConverter
method ConvertFrom (line 12) | public override object ConvertFrom(ITypeDescriptorContext context, Cul...
Condensed preview — 230 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (829K chars).
[
{
"path": ".github/FUNDING.yml",
"chars": 640,
"preview": "# These are supported funding model platforms\n\ngithub: [muak]\npatreon: # Replace with a single Patreon username\nopen_col"
},
{
"path": ".github/ISSUE_TEMPLATE/bug_report.md",
"chars": 812,
"preview": "---\nname: Bug report\nabout: Create a report to help us improve\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\n---\nname: Bug re"
},
{
"path": ".github/ISSUE_TEMPLATE/feature_request.md",
"chars": 1031,
"preview": "---\nname: Feature request\nabout: Suggest an idea for this project\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\n---\nname: Fea"
},
{
"path": ".gitignore",
"chars": 2826,
"preview": "## Ignore Visual Studio temporary files, build results, and\n## files generated by popular Visual Studio add-ons.\n\n.vs/\n."
},
{
"path": "AiForms.Maui.SettingsView.slnx",
"chars": 156,
"preview": "<Solution>\n <Folder Name=\"/Solution Items/\" />\n <Project Path=\"Sample/Sample.csproj\" />\n <Project Path=\"SettingsView/"
},
{
"path": "CONTRIBUTING-ja.md",
"chars": 3008,
"preview": "# How to contribute\n\n[English contribution guideline is here!](CONTRIBUTING.md)\n\n我々は皆さんの AiForms.SettingsView へ貢献を歓迎します。"
},
{
"path": "CONTRIBUTING.md",
"chars": 3769,
"preview": "# How to contribute\n\n[日本語のコントリビューションガイドはこちら!](CONTRIBUTING-ja.md)\n\nThird-party contributions are essential for the futur"
},
{
"path": "LICENSE.txt",
"chars": 1060,
"preview": "MIT License\n\nCopyright (c) 2022 kamu\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof th"
},
{
"path": "README-ja.md",
"chars": 21977,
"preview": "# AiForms.SettingsView for .NET MAUI\n\nSettingViewは.NET MAUIで使用できる設定に特化した柔軟なTableViewです。 \nAndroidとiOSに対応しています。\n\n**現在プレビュ"
},
{
"path": "README.md",
"chars": 26343,
"preview": "# AiForms.SettingsView for .NET MAUI\n\nThis is a flexible TableView specialized in settings for Android / iOS.\n\n**This is"
},
{
"path": "Sample/App.xaml",
"chars": 654,
"preview": "<?xml version = \"1.0\" encoding = \"UTF-8\" ?>\n<Application xmlns=\"http://schemas.microsoft.com/dotnet/2021/maui\"\n "
},
{
"path": "Sample/App.xaml.cs",
"chars": 132,
"preview": "namespace Sample;\n\npublic partial class App : Application\n{\n public App()\n {\n InitializeComponent(); "
},
{
"path": "Sample/MauiProgram.cs",
"chars": 2549,
"preview": "using System.Globalization;\nusing System.Reflection;\nusing AiForms.Settings;\nusing Microsoft.Maui;\nusing Prism;\nusing P"
},
{
"path": "Sample/Platforms/Android/AndroidManifest.xml",
"chars": 554,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\" package=\"jp"
},
{
"path": "Sample/Platforms/Android/MainActivity.cs",
"chars": 763,
"preview": "using System.Reflection;\r\nusing Android.App;\nusing Android.Content;\nusing Android.Content.PM;\nusing Android.OS;\nusing G"
},
{
"path": "Sample/Platforms/Android/MainApplication.cs",
"chars": 327,
"preview": "using Android.App;\nusing Android.Runtime;\n\nnamespace Sample;\n\n[Application]\npublic class MainApplication : MauiApplicat"
},
{
"path": "Sample/Platforms/Android/Resources/values/colors.xml",
"chars": 210,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n <color name=\"colorPrimary\">#512BD4</color>\n <color name=\"colo"
},
{
"path": "Sample/Platforms/iOS/AppDelegate.cs",
"chars": 202,
"preview": "using Foundation;\n\nnamespace Sample;\n\n[Register(\"AppDelegate\")]\npublic class AppDelegate : MauiUIApplicationDelegate\n{\n"
},
{
"path": "Sample/Platforms/iOS/Info.plist",
"chars": 1120,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "Sample/Platforms/iOS/Program.cs",
"chars": 368,
"preview": "using ObjCRuntime;\nusing UIKit;\n\nnamespace Sample;\n\npublic class Program\n{\n // This is the main entry point of the a"
},
{
"path": "Sample/Properties/launchSettings.json",
"chars": 123,
"preview": "{\n \"profiles\": {\n \"Windows Machine\": {\n \"commandName\": \"MsixPackage\",\n \"nativeDebugging\": false\n }\n }"
},
{
"path": "Sample/Resources/Raw/AboutAssets.txt",
"chars": 671,
"preview": "Any raw assets you want to be deployed with your application can be placed in\nthis directory (and child directories). D"
},
{
"path": "Sample/Resources/Styles/Colors.xaml",
"chars": 2235,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<?xaml-comp compile=\"true\" ?>\n<ResourceDictionary \n xmlns=\"http://schemas.mi"
},
{
"path": "Sample/Resources/Styles/Styles.xaml",
"chars": 21905,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<?xaml-comp compile=\"true\" ?>\n<ResourceDictionary \n xmlns=\"http://schemas.mi"
},
{
"path": "Sample/Sample.csproj",
"chars": 3034,
"preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\r\n\r\n\t<PropertyGroup>\r\n\t\t<TargetFrameworks>net9.0-android;net9.0-ios</TargetFrameworks>"
},
{
"path": "Sample/ViewModels/CustomHeaderViewModel.cs",
"chars": 484,
"preview": "using System;\nusing Reactive.Bindings;\n\nnamespace Sample.ViewModels;\n\npublic class CustomHeaderViewModel:BindableBase\n{"
},
{
"path": "Sample/ViewModels/DynamicHeaderSizeViewModel.cs",
"chars": 3609,
"preview": "namespace Sample.ViewModels;\n\npublic class DynamicHeaderSizeViewModel: BindableBase, IInitializeAsync,IPageLifecycleAwar"
},
{
"path": "Sample/ViewModels/HeaderSurveyViewModel.cs",
"chars": 236,
"preview": "using System;\nusing Reactive.Bindings;\n\nnamespace Sample.ViewModels;\n\npublic class HeaderSurveyViewModel: BindableBase\n"
},
{
"path": "Sample/ViewModels/ListViewModel.cs",
"chars": 553,
"preview": "using System;\nusing System.Collections.ObjectModel;\n\nnamespace Sample.ViewModels;\n\npublic class ListViewModel: Bindable"
},
{
"path": "Sample/ViewModels/MainViewModel.cs",
"chars": 3644,
"preview": "using System;\nusing System.Collections.ObjectModel;\nusing System.ComponentModel.DataAnnotations;\nusing System.Reactive."
},
{
"path": "Sample/ViewModels/SurveyViewModel.cs",
"chars": 999,
"preview": "using System.Collections.ObjectModel;\nusing Reactive.Bindings;\n\nnamespace Sample.ViewModels;\n\npublic class SurveyViewMod"
},
{
"path": "Sample/ViewModels/TapSurveyViewModel.cs",
"chars": 139,
"preview": "using System;\nnamespace Sample.ViewModels;\n\npublic class TapSurveyViewModel:BindableBase\n{\n public TapSurveyViewMode"
},
{
"path": "Sample/Views/Cells/MyCellA.xaml",
"chars": 635,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<sv:CustomCell\n xmlns=\"http://schemas.microsoft.com/dotnet/2021/maui\"\n xml"
},
{
"path": "Sample/Views/Cells/MyCellA.xaml.cs",
"chars": 726,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\nusi"
},
{
"path": "Sample/Views/Cells/MyCellB.xaml",
"chars": 570,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<sv:CustomCell\n xmlns=\"http://schemas.microsoft.com/dotnet/2021/maui\"\n xml"
},
{
"path": "Sample/Views/Cells/MyCellB.xaml.cs",
"chars": 334,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\nusi"
},
{
"path": "Sample/Views/Cells/MyCellC.xaml",
"chars": 471,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<sv:CustomCell\n xmlns=\"http://schemas.microsoft.com/dotnet/2021/maui\"\n xml"
},
{
"path": "Sample/Views/Cells/MyCellC.xaml.cs",
"chars": 334,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\nusi"
},
{
"path": "Sample/Views/Cells/SliderCell.xaml",
"chars": 688,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<sv:CustomCell\n xmlns=\"http://schemas.microsoft.com/dotnet/2021/maui\"\n xml"
},
{
"path": "Sample/Views/Cells/SliderCell.xaml.cs",
"chars": 2194,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\nusi"
},
{
"path": "Sample/Views/CustomHeaderPage.xaml",
"chars": 2961,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<ContentPage\n xmlns=\"http://schemas.microsoft.com/dotnet/2021/maui\"\n xmln"
},
{
"path": "Sample/Views/CustomHeaderPage.xaml.cs",
"chars": 155,
"preview": "namespace Sample.Views;\n\npublic partial class CustomHeaderPage : ContentPage\n{\n public CustomHeaderPage()\n {\n "
},
{
"path": "Sample/Views/DynamicHeaderSizePage.xaml",
"chars": 3586,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<ContentPage \n xmlns=\"http://schemas.microsoft.com/dotnet/2021/maui\"\n xmln"
},
{
"path": "Sample/Views/DynamicHeaderSizePage.xaml.cs",
"chars": 280,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\n\nnam"
},
{
"path": "Sample/Views/HeaderSurveyPage.xaml",
"chars": 2682,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<ContentPage\n xmlns=\"http://schemas.microsoft.com/dotnet/2021/maui\"\n xmln"
},
{
"path": "Sample/Views/HeaderSurveyPage.xaml.cs",
"chars": 155,
"preview": "namespace Sample.Views;\n\npublic partial class HeaderSurveyPage : ContentPage\n{\n public HeaderSurveyPage()\n {\n "
},
{
"path": "Sample/Views/ListPage.xaml",
"chars": 1136,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<ContentPage\n xmlns=\"http://schemas.microsoft.com/dotnet/2021/maui\"\n xmln"
},
{
"path": "Sample/Views/ListPage.xaml.cs",
"chars": 139,
"preview": "namespace Sample.Views;\n\npublic partial class ListPage : ContentPage\n{\n public ListPage()\n {\n InitializeCo"
},
{
"path": "Sample/Views/MainPage.xaml",
"chars": 7147,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<ContentPage\n xmlns=\"http://schemas.microsoft.com/dotnet/2021/maui\"\n xmln"
},
{
"path": "Sample/Views/MainPage.xaml.cs",
"chars": 910,
"preview": "using AiForms.Settings;\nusing Sample.ViewModels;\n\nnamespace Sample.Views;\n\npublic partial class MainPage : ContentPage\n"
},
{
"path": "Sample/Views/MyNavigationPage.cs",
"chars": 331,
"preview": "using System;\nnamespace Sample.Views\n{\n public class MyNavigationPage : NavigationPage\n {\n public MyNaviga"
},
{
"path": "Sample/Views/SurveyPage.xaml",
"chars": 2089,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<ContentPage \n xmlns=\"http://schemas.microsoft.com/dotnet/2021/maui\"\n xmlns"
},
{
"path": "Sample/Views/SurveyPage.xaml.cs",
"chars": 258,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\n\nnam"
},
{
"path": "Sample/Views/TapSurveyPage.xaml",
"chars": 2912,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<ContentPage xmlns=\"http://schemas.microsoft.com/dotnet/2021/maui\"\n "
},
{
"path": "Sample/Views/TapSurveyPage.xaml.cs",
"chars": 732,
"preview": "namespace Sample.Views;\n\npublic partial class TapSurveyPage : ContentPage\n{\n public TapSurveyPage()\n {\n In"
},
{
"path": "SettingsView/BindableBase.cs",
"chars": 1365,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.ComponentModel;\nusing System.Runtime.CompilerServices;\n\nna"
},
{
"path": "SettingsView/CellPropertyChangedEventHandler.cs",
"chars": 323,
"preview": "using System;\nusing System.ComponentModel;\n\nnamespace AiForms.Settings;\n\r\npublic class CellPropertyChangedEventArgs : P"
},
{
"path": "SettingsView/Cells/ButtonCell.cs",
"chars": 2248,
"preview": "using System;\nusing System.Windows.Input;\nnamespace AiForms.Settings;\n\r\n/// <summary>\n/// Button cell.\n/// </summary>\np"
},
{
"path": "SettingsView/Cells/CellBase.cs",
"chars": 14300,
"preview": "using System;\nusing System.ComponentModel;\nusing Microsoft.Maui.Platform;\n\nnamespace AiForms.Settings;\n\r\npublic class C"
},
{
"path": "SettingsView/Cells/CheckboxCell.cs",
"chars": 1455,
"preview": "using System;\n\nnamespace AiForms.Settings;\n\r\n/// <summary>\n/// Checkbox cell.\n/// </summary>\npublic class CheckboxCell:"
},
{
"path": "SettingsView/Cells/CommandCell.cs",
"chars": 2658,
"preview": "using System;\nusing System.Windows.Input;\n\nnamespace AiForms.Settings;\n\r\n/// <summary>\n/// Command cell.\n/// </summary>"
},
{
"path": "SettingsView/Cells/CustomCell.cs",
"chars": 5068,
"preview": "using System;\nusing System.Windows.Input;\n\nnamespace AiForms.Settings;\n\r\n/// <summary>\n/// Custom cell.\n/// </summary>\n"
},
{
"path": "SettingsView/Cells/DatePickerCell.cs",
"chars": 4509,
"preview": "using System;\n\nnamespace AiForms.Settings;\n\r\n/// <summary>\n/// Date picker cell.\n/// </summary>\npublic class DatePicker"
},
{
"path": "SettingsView/Cells/EntryCell.cs",
"chars": 9941,
"preview": "using System;\nusing System.ComponentModel;\nusing System.Windows.Input;\nusing Microsoft.Maui.Converters;\n\nnamespace AiFo"
},
{
"path": "SettingsView/Cells/LabelCell.cs",
"chars": 3908,
"preview": "using System;\nusing System.ComponentModel;\n\nnamespace AiForms.Settings;\n\r\n/// <summary>\n/// Label cell.\n/// </summary>\n"
},
{
"path": "SettingsView/Cells/NumberPickerCell.cs",
"chars": 3567,
"preview": "using System;\nusing System.Windows.Input;\n\nnamespace AiForms.Settings;\n\r\n/// <summary>\n/// Number picker cell.\n/// </su"
},
{
"path": "SettingsView/Cells/PickerCell.cs",
"chars": 19377,
"preview": "using System;\nusing System.Collections;\nusing System.Collections.Concurrent;\nusing System.Collections.Generic;\nusing Sy"
},
{
"path": "SettingsView/Cells/RadioCell.cs",
"chars": 2278,
"preview": "using System;\n\nnamespace AiForms.Settings;\n\r\n/// <summary>\n/// Radio cell.\n/// </summary>\npublic class RadioCell:CellBa"
},
{
"path": "SettingsView/Cells/SimpleCheckCell.cs",
"chars": 1701,
"preview": "using System;\nnamespace AiForms.Settings;\n\r\npublic class SimpleCheckCell: CellBase\n{\n public static BindableProperty"
},
{
"path": "SettingsView/Cells/SwitchCell.cs",
"chars": 1405,
"preview": "using System;\n\nnamespace AiForms.Settings;\n\r\n/// <summary>\n/// Switch cell.\n/// </summary>\npublic class SwitchCell:Cell"
},
{
"path": "SettingsView/Cells/TextPickerCell.cs",
"chars": 4587,
"preview": "using System;\nusing System.Windows.Input;\nusing System.Collections.Generic;\nusing System.Collections;\n\nnamespace AiForm"
},
{
"path": "SettingsView/Cells/TimePickerCell.cs",
"chars": 1957,
"preview": "using System;\n\nnamespace AiForms.Settings;\n\r\n/// <summary>\n/// Time picker cell.\n/// </summary>\npublic class TimePicker"
},
{
"path": "SettingsView/DropEventArgs.cs",
"chars": 450,
"preview": "using System;\n\nnamespace AiForms.Settings;\n\r\npublic class DropEventArgs:EventArgs\n{ \n public Section Section {"
},
{
"path": "SettingsView/Extensions/EnumerableExtension.cs",
"chars": 441,
"preview": "using System;\nnamespace AiForms.Settings.Extensions\n{\n public static class EnumerableExtension\n {\n public "
},
{
"path": "SettingsView/Extensions/FontExtension.cs",
"chars": 551,
"preview": "using System;\nusing Microsoft.Maui;\nusing Font = Microsoft.Maui.Font;\n\nnamespace AiForms.Settings.Extensions;\n\r\npublic "
},
{
"path": "SettingsView/Extensions/HandlerCleanUpHelper.cs",
"chars": 818,
"preview": "using System;\nusing Microsoft.Maui.Handlers;\n\nnamespace AiForms.Settings.Extensions;\n\npublic static class HandlerCleanU"
},
{
"path": "SettingsView/Extensions/ViewExtension.cs",
"chars": 1087,
"preview": "#nullable enable\nusing System;\n\nnamespace AiForms.Settings.Extensions;\n\r\npublic static class ViewExtension\n{\n public"
},
{
"path": "SettingsView/Handlers/ButtonCell/ButtonCellHandler.Android.cs",
"chars": 842,
"preview": "using System;\nusing AiForms.Settings.Platforms.Droid;\n\nnamespace AiForms.Settings.Handlers;\n\r\npublic partial class Butt"
},
{
"path": "SettingsView/Handlers/ButtonCell/ButtonCellHandler.Net.cs",
"chars": 320,
"preview": "using System;\nnamespace AiForms.Settings.Handlers;\n\npublic partial class ButtonCellHandler : CellBaseHandler<ButtonCell"
},
{
"path": "SettingsView/Handlers/ButtonCell/ButtonCellHandler.cs",
"chars": 473,
"preview": "using System;\nnamespace AiForms.Settings.Handlers;\n\r\npublic partial class ButtonCellHandler\n{\n public static Command"
},
{
"path": "SettingsView/Handlers/ButtonCell/ButtonCellHandler.iOS.cs",
"chars": 924,
"preview": "using System;\nusing AiForms.Settings.Platforms.iOS;\n\nnamespace AiForms.Settings.Handlers;\n\r\npublic partial class Button"
},
{
"path": "SettingsView/Handlers/CellBase/CellBaseHandler.Android.cs",
"chars": 7340,
"preview": "using System;\nusing System.Linq.Expressions;\nusing System.Reflection;\nusing AiForms.Settings.Platforms.Droid;\nusing And"
},
{
"path": "SettingsView/Handlers/CellBase/CellBaseHandler.Net.cs",
"chars": 449,
"preview": "using System;\nnamespace AiForms.Settings.Handlers;\n\npublic partial class CellBaseHandler<TvirtualCell, TnativeCell>\n{\n "
},
{
"path": "SettingsView/Handlers/CellBase/CellBaseHandler.cs",
"chars": 2971,
"preview": "#nullable enable\nusing System;\nusing System.Linq.Expressions;\nusing System.Reflection;\nusing AiForms.Settings;\nusing Mi"
},
{
"path": "SettingsView/Handlers/CellBase/CellBaseHandler.iOS.cs",
"chars": 8955,
"preview": "#nullable enable\nusing System;\nusing System.Linq.Expressions;\nusing System.Reflection;\nusing AiForms.Settings.Platforms"
},
{
"path": "SettingsView/Handlers/CellBase/CellBaseView.Net.cs",
"chars": 521,
"preview": "using System;\nusing System.ComponentModel;\n\nnamespace AiForms.Settings.Handlers;\n\npublic class CellBaseView\n{\n publi"
},
{
"path": "SettingsView/Handlers/CheckboxCell/CheckboxCellHandler.Android.cs",
"chars": 794,
"preview": "using System;\nusing AiForms.Settings.Platforms.Droid;\n\nnamespace AiForms.Settings.Handlers;\n\r\npublic partial class Chec"
},
{
"path": "SettingsView/Handlers/CheckboxCell/CheckboxCellHandler.Net.cs",
"chars": 313,
"preview": "using System;\nnamespace AiForms.Settings.Handlers;\n\npublic partial class CheckboxCellHandler: CellBaseHandler<CheckboxC"
},
{
"path": "SettingsView/Handlers/CheckboxCell/CheckboxCellHandler.cs",
"chars": 491,
"preview": "using System;\nnamespace AiForms.Settings.Handlers;\n\r\npublic partial class CheckboxCellHandler\n{\n public static Comma"
},
{
"path": "SettingsView/Handlers/CheckboxCell/CheckboxCellHandler.iOS.cs",
"chars": 876,
"preview": "using System;\nusing AiForms.Settings.Platforms.iOS;\n\nnamespace AiForms.Settings.Handlers;\n\r\npublic partial class Checkb"
},
{
"path": "SettingsView/Handlers/CommandCell/CommandCellHandler.Android.cs",
"chars": 656,
"preview": "using System;\nusing AiForms.Settings.Platforms.Droid;\nusing Android.Bluetooth;\n\nnamespace AiForms.Settings.Handlers;\n\r\n"
},
{
"path": "SettingsView/Handlers/CommandCell/CommandCellHandler.Net.cs",
"chars": 305,
"preview": "using System;\nnamespace AiForms.Settings.Handlers;\n\npublic partial class CommandCellHandler : LabelCellBaseHandler<Comm"
},
{
"path": "SettingsView/Handlers/CommandCell/CommandCellHandler.cs",
"chars": 482,
"preview": "using System;\nnamespace AiForms.Settings.Handlers;\n\r\npublic partial class CommandCellHandler\n{\n public static Comman"
},
{
"path": "SettingsView/Handlers/CommandCell/CommandCellHandler.iOS.cs",
"chars": 670,
"preview": "using System;\nusing AiForms.Settings.Platforms.iOS;\n\nnamespace AiForms.Settings.Handlers;\n\r\npublic partial class Comman"
},
{
"path": "SettingsView/Handlers/CustomCell/CustomCellHandler.Android.cs",
"chars": 646,
"preview": "using System;\nusing AiForms.Settings.Platforms.Droid;\nusing Android.Bluetooth;\n\nnamespace AiForms.Settings.Handlers;\n\r\n"
},
{
"path": "SettingsView/Handlers/CustomCell/CustomCellHandler.Net.cs",
"chars": 300,
"preview": "using System;\nnamespace AiForms.Settings.Handlers;\n\npublic partial class CustomCellHandler : CellBaseHandler<CustomCell"
},
{
"path": "SettingsView/Handlers/CustomCell/CustomCellHandler.cs",
"chars": 471,
"preview": "using System;\nnamespace AiForms.Settings.Handlers;\n\r\npublic partial class CustomCellHandler\n{\n public static Command"
},
{
"path": "SettingsView/Handlers/CustomCell/CustomCellHandler.iOS.cs",
"chars": 661,
"preview": "using System;\nusing AiForms.Settings.Platforms.iOS;\n\nnamespace AiForms.Settings.Handlers;\n\r\npublic partial class Custom"
},
{
"path": "SettingsView/Handlers/DatePickerCell/DatePickerCellHandler.Android.cs",
"chars": 1084,
"preview": "using System;\nusing AiForms.Settings.Platforms.Droid;\n\nnamespace AiForms.Settings.Handlers;\n\r\npublic partial class Date"
},
{
"path": "SettingsView/Handlers/DatePickerCell/DatePickerCellHandler.Net.cs",
"chars": 326,
"preview": "using System;\nnamespace AiForms.Settings.Handlers;\n\npublic partial class DatePickerCellHandler : LabelCellBaseHandler<D"
},
{
"path": "SettingsView/Handlers/DatePickerCell/DatePickerCellHandler.cs",
"chars": 506,
"preview": "using System;\nnamespace AiForms.Settings.Handlers;\n\r\npublic partial class DatePickerCellHandler\n{\n public static Com"
},
{
"path": "SettingsView/Handlers/DatePickerCell/DatePickerCellHandler.iOS.cs",
"chars": 1463,
"preview": "using System;\nusing AiForms.Settings.Platforms.iOS;\n\nnamespace AiForms.Settings.Handlers;\n\r\npublic partial class DatePi"
},
{
"path": "SettingsView/Handlers/EntryCell/EntryCellHandler.Android.cs",
"chars": 187,
"preview": "using System;\nusing AiForms.Settings.Platforms.Droid;\n\nnamespace AiForms.Settings.Handlers;\n\r\npublic partial class Entr"
},
{
"path": "SettingsView/Handlers/EntryCell/EntryCellHandler.Net.cs",
"chars": 144,
"preview": "using System;\nnamespace AiForms.Settings.Handlers;\n\npublic partial class EntryCellHandler : EntryCellBaseHandler<EntryC"
},
{
"path": "SettingsView/Handlers/EntryCell/EntryCellHandler.cs",
"chars": 358,
"preview": "using System;\nnamespace AiForms.Settings.Handlers;\n\r\npublic partial class EntryCellHandler\n{ \n\n public EntryCellHa"
},
{
"path": "SettingsView/Handlers/EntryCell/EntryCellHandler.iOS.cs",
"chars": 189,
"preview": "using System;\nusing AiForms.Settings.Platforms.iOS;\n\nnamespace AiForms.Settings.Handlers;\n\r\npublic partial class EntryC"
},
{
"path": "SettingsView/Handlers/EntryCellBase/EntryCellBaseHandler.Android.cs",
"chars": 2841,
"preview": "using System;\nusing AiForms.Settings.Platforms.Droid;\n\nnamespace AiForms.Settings.Handlers;\n\r\npublic partial class Entr"
},
{
"path": "SettingsView/Handlers/EntryCellBase/EntryCellBaseHandler.Net.cs",
"chars": 342,
"preview": "using System;\nnamespace AiForms.Settings.Handlers;\n\npublic partial class EntryCellBaseHandler<TvirtualCell, TnativeCell"
},
{
"path": "SettingsView/Handlers/EntryCellBase/EntryCellBaseHandler.cs",
"chars": 921,
"preview": "using System;\n#if IOS || MACCATALYST\nusing EntryCellView = AiForms.Settings.Platforms.iOS.EntryCellView;\n#elif __ANDROI"
},
{
"path": "SettingsView/Handlers/EntryCellBase/EntryCellBaseHandler.iOS.cs",
"chars": 2967,
"preview": "using System;\nusing System.Drawing;\nusing AiForms.Settings.Platforms.iOS;\n\nnamespace AiForms.Settings.Handlers;\n\npublic"
},
{
"path": "SettingsView/Handlers/LabelCell/LabelCellHandler.Android.cs",
"chars": 186,
"preview": "using System;\nusing AiForms.Settings.Platforms.Droid;\n\nnamespace AiForms.Settings.Handlers;\n\r\npublic partial class Labe"
},
{
"path": "SettingsView/Handlers/LabelCell/LabelCellHandler.Net.cs",
"chars": 148,
"preview": "using System;\nnamespace AiForms.Settings.Handlers;\n\npublic partial class LabelCellHandler : LabelCellBaseHandler<LabelC"
},
{
"path": "SettingsView/Handlers/LabelCell/LabelCellHandler.cs",
"chars": 354,
"preview": "using System;\nnamespace AiForms.Settings.Handlers;\n\r\npublic partial class LabelCellHandler\n{\n public LabelCellHandle"
},
{
"path": "SettingsView/Handlers/LabelCell/LabelCellHandler.iOS.cs",
"chars": 184,
"preview": "using System;\nusing AiForms.Settings.Platforms.iOS;\n\nnamespace AiForms.Settings.Handlers;\n\r\npublic partial class LabelC"
},
{
"path": "SettingsView/Handlers/LabelCellBase/LabelCellBaseHandler.Android.cs",
"chars": 2151,
"preview": "using System;\nusing AiForms.Settings.Platforms.Droid;\n\nnamespace AiForms.Settings.Handlers\n{\n public partial class L"
},
{
"path": "SettingsView/Handlers/LabelCellBase/LabelCellBaseHandler.Net.cs",
"chars": 339,
"preview": "using System;\nnamespace AiForms.Settings.Handlers;\n\npublic partial class LabelCellBaseHandler<TvirtualCell, TnativeCell"
},
{
"path": "SettingsView/Handlers/LabelCellBase/LabelCellBaseHandler.cs",
"chars": 930,
"preview": "using System;\n#if IOS || MACCATALYST\nusing LabelCellView = AiForms.Settings.Platforms.iOS.LabelCellView;\n#elif __ANDROI"
},
{
"path": "SettingsView/Handlers/LabelCellBase/LabelCellBaseHandler.iOS.cs",
"chars": 1696,
"preview": "using System;\nusing AiForms.Settings.Platforms.iOS;\n\nnamespace AiForms.Settings.Handlers;\n\npublic partial class LabelCe"
},
{
"path": "SettingsView/Handlers/NumberPickerCell/NumberPickerCellHandler.Android.cs",
"chars": 1468,
"preview": "using System;\nusing AiForms.Settings.Platforms.Droid;\n\nnamespace AiForms.Settings.Handlers;\n\npublic partial class Numbe"
},
{
"path": "SettingsView/Handlers/NumberPickerCell/NumberPickerCellHandler.Net.cs",
"chars": 340,
"preview": "using System;\nnamespace AiForms.Settings.Handlers;\n\npublic partial class NumberPickerCellHandler : LabelCellBaseHandler"
},
{
"path": "SettingsView/Handlers/NumberPickerCell/NumberPickerCellHandler.cs",
"chars": 531,
"preview": "using System;\nnamespace AiForms.Settings.Handlers;\n\npublic partial class NumberPickerCellHandler\n{\n public static Co"
},
{
"path": "SettingsView/Handlers/NumberPickerCell/NumberPickerCellHandler.iOS.cs",
"chars": 1514,
"preview": "using System;\nusing AiForms.Settings.Platforms.iOS;\n\nnamespace AiForms.Settings.Handlers;\n\npublic partial class NumberP"
},
{
"path": "SettingsView/Handlers/RadioCell/RadioCellHandler.Android.cs",
"chars": 561,
"preview": "using System;\nusing AiForms.Settings.Platforms.Droid;\n\nnamespace AiForms.Settings.Handlers;\n\npublic partial class Radio"
},
{
"path": "SettingsView/Handlers/RadioCell/RadioCellHandler.Net.cs",
"chars": 293,
"preview": "using System;\nnamespace AiForms.Settings.Handlers;\n\npublic partial class RadioCellHandler : CellBaseHandler<RadioCell, "
},
{
"path": "SettingsView/Handlers/RadioCell/RadioCellHandler.cs",
"chars": 460,
"preview": "using System;\nnamespace AiForms.Settings.Handlers;\n\npublic partial class RadioCellHandler\n{\n public static CommandMa"
},
{
"path": "SettingsView/Handlers/RadioCell/RadioCellHandler.iOS.cs",
"chars": 601,
"preview": "using System;\nusing AiForms.Settings.Platforms.iOS;\n\nnamespace AiForms.Settings.Handlers;\n\npublic partial class RadioCe"
},
{
"path": "SettingsView/Handlers/SettingsViewHandler.Android.cs",
"chars": 2753,
"preview": "using System;\nusing AiForms.Settings.Extensions;\nusing AiForms.Settings.Platforms.Droid;\nusing Android.Views;\nusing And"
},
{
"path": "SettingsView/Handlers/SettingsViewHandler.Net.cs",
"chars": 474,
"preview": "using System;\nusing Microsoft.Maui.ApplicationModel.Communication;\nusing Microsoft.Maui.Handlers;\n\nnamespace AiForms.Se"
},
{
"path": "SettingsView/Handlers/SettingsViewHandler.cs",
"chars": 285,
"preview": "using System;\nusing Microsoft.Maui;\n\nnamespace AiForms.Settings.Handlers;\n\r\npublic partial class SettingsViewHandler\n{ "
},
{
"path": "SettingsView/Handlers/SettingsViewHandler.iOS.cs",
"chars": 7438,
"preview": "using System;\nusing System.Collections.Specialized;\nusing AiForms.Settings.Platforms.iOS;\nusing CoreGraphics;\nusing Fou"
},
{
"path": "SettingsView/Handlers/SimpleCheckCell/SimpleCheckCellHandler.Android.cs",
"chars": 502,
"preview": "using System;\nusing AiForms.Settings.Platforms.Droid;\n\nnamespace AiForms.Settings.Handlers;\n\npublic partial class Simpl"
},
{
"path": "SettingsView/Handlers/SimpleCheckCell/SimpleCheckCellHandler.Net.cs",
"chars": 358,
"preview": "using System;\nnamespace AiForms.Settings.Handlers;\n\npublic partial class SimpleCheckCellHandler : CellBaseHandler<Simpl"
},
{
"path": "SettingsView/Handlers/SimpleCheckCell/SimpleCheckCellHandler.cs",
"chars": 854,
"preview": "using System;\n\nnamespace AiForms.Settings.Handlers;\n\npublic partial class SimpleCheckCellHandler\n{\n public static IP"
},
{
"path": "SettingsView/Handlers/SimpleCheckCell/SimpleCheckCellHandler.iOS.cs",
"chars": 542,
"preview": "using System;\nusing AiForms.Settings.Platforms.iOS;\n\nnamespace AiForms.Settings.Handlers;\n\npublic partial class SimpleC"
},
{
"path": "SettingsView/Handlers/SwitchCell/SwitchCellHandler.Android.cs",
"chars": 744,
"preview": "using System;\nusing AiForms.Settings.Platforms.Droid;\n\nnamespace AiForms.Settings.Handlers;\n\npublic partial class Switc"
},
{
"path": "SettingsView/Handlers/SwitchCell/SwitchCellHandler.Net.cs",
"chars": 300,
"preview": "using System;\nnamespace AiForms.Settings.Handlers;\n\npublic partial class SwitchCellHandler : CellBaseHandler<SwitchCell"
},
{
"path": "SettingsView/Handlers/SwitchCell/SwitchCellHandler.cs",
"chars": 469,
"preview": "using System;\nnamespace AiForms.Settings.Handlers;\n\npublic partial class SwitchCellHandler\n{\n public static CommandM"
},
{
"path": "SettingsView/Handlers/SwitchCell/SwitchCellHandler.iOS.cs",
"chars": 826,
"preview": "using System;\nusing AiForms.Settings.Platforms.iOS;\n\nnamespace AiForms.Settings.Handlers;\n\npublic partial class SwitchC"
},
{
"path": "SettingsView/Handlers/Template/CellHandler.Android.cs",
"chars": 414,
"preview": "//using System;\n//using AiForms.Settings.Platforms.Droid;\n\n//namespace AiForms.Settings.Handlers;\n\r\n//public partial cl"
},
{
"path": "SettingsView/Handlers/Template/CellHandler.cs",
"chars": 273,
"preview": "//using System;\n//namespace AiForms.Settings.Handlers;\n\r\n//public partial class FooCellHandler\n//{\n// public FooCell"
},
{
"path": "SettingsView/Handlers/Template/CellHandler.iOS.cs",
"chars": 403,
"preview": "//using System;\n//using AiForms.Settings.Platforms.iOS;\n\n//namespace AiForms.Settings.Handlers;\n\r\n//public partial clas"
},
{
"path": "SettingsView/Handlers/TextPickerCell/TextPickerCellHandler.Android.cs",
"chars": 1068,
"preview": "using System;\nusing AiForms.Settings.Platforms.Droid;\n\nnamespace AiForms.Settings.Handlers;\n\npublic partial class TextP"
},
{
"path": "SettingsView/Handlers/TextPickerCell/TextPickerCellHandler.Net.cs",
"chars": 326,
"preview": "using System;\nnamespace AiForms.Settings.Handlers;\n\npublic partial class TextPickerCellHandler : LabelCellBaseHandler<T"
},
{
"path": "SettingsView/Handlers/TextPickerCell/TextPickerCellHandler.cs",
"chars": 511,
"preview": "using System;\nnamespace AiForms.Settings.Handlers;\n\npublic partial class TextPickerCellHandler\n{\n public static Comm"
},
{
"path": "SettingsView/Handlers/TextPickerCell/TextPickerCellHandler.iOS.cs",
"chars": 1437,
"preview": "using System;\nusing AiForms.Settings.Platforms.iOS;\n\nnamespace AiForms.Settings.Handlers;\n\npublic partial class TextPic"
},
{
"path": "SettingsView/Handlers/TimePickerCell/TimePickerCellHandler.Android.cs",
"chars": 862,
"preview": "using System;\nusing AiForms.Settings.Platforms.Droid;\n\nnamespace AiForms.Settings.Handlers;\n\npublic partial class TimeP"
},
{
"path": "SettingsView/Handlers/TimePickerCell/TimePickerCellHandler.Net.cs",
"chars": 324,
"preview": "using System;\nnamespace AiForms.Settings.Handlers;\n\npublic partial class TimePickerCellHandler : LabelCellBaseHandler<T"
},
{
"path": "SettingsView/Handlers/TimePickerCell/TimePickerCellHandler.cs",
"chars": 511,
"preview": "using System;\nnamespace AiForms.Settings.Handlers;\n\npublic partial class TimePickerCellHandler\n{\n public static Comm"
},
{
"path": "SettingsView/Handlers/TimePickerCell/TimePickerCellHandler.iOS.cs",
"chars": 944,
"preview": "using System;\nusing AiForms.Settings.Platforms.iOS;\n\nnamespace AiForms.Settings.Handlers;\n\npublic partial class TimePic"
},
{
"path": "SettingsView/MauiAppBuilderExtension.cs",
"chars": 486,
"preview": "using System;\nnamespace AiForms.Settings;\n\npublic static class MauiAppBuilderExtension\n{\n public static MauiAppBuild"
},
{
"path": "SettingsView/MauiHandlerExtension.cs",
"chars": 1417,
"preview": "using System;\nusing AiForms.Settings.Handlers;\n\nnamespace AiForms.Settings\n{\n public static class MauiHandlerExtensi"
},
{
"path": "SettingsView/Native/Android/AiRecyclerView.cs",
"chars": 14504,
"preview": "using System;\nusing AiForms.Settings.Platforms.Droid;\nusing Android.Content;\nusing Android.Graphics.Drawables;\nusing An"
},
{
"path": "SettingsView/Native/Android/Cells/ButtonCellView.cs",
"chars": 3574,
"preview": "using System;\nusing System.Windows.Input;\nusing Android.Content;\nusing Android.Runtime;\n\nnamespace AiForms.Settings.Pla"
},
{
"path": "SettingsView/Native/Android/Cells/CellBaseView.cs",
"chars": 22188,
"preview": "using System;\r\nusing System.ComponentModel;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\nusing Android.Conte"
},
{
"path": "SettingsView/Native/Android/Cells/CheckboxCellView.cs",
"chars": 5878,
"preview": "using System;\nusing Android.Content;\nusing Android.Content.Res;\nusing Android.Graphics.Drawables;\nusing Android.Runtime"
},
{
"path": "SettingsView/Native/Android/Cells/CommandCellView.cs",
"chars": 4215,
"preview": "using System;\nusing Android.Content;\nusing Android.Runtime;\nusing Android.Views;\nusing Android.Widget;\nusing System.Win"
},
{
"path": "SettingsView/Native/Android/Cells/CustomCellView.cs",
"chars": 5438,
"preview": "using System;\nusing Android.Widget;\nusing System.Windows.Input;\nusing Android.Content;\nusing Android.Runtime;\nusing And"
},
{
"path": "SettingsView/Native/Android/Cells/DatePickerCellView.cs",
"chars": 5153,
"preview": "using System;\nusing Android.App;\nusing Android.Content;\nusing Android.Runtime;\nusing Microsoft.Maui.Controls.Compatibil"
},
{
"path": "SettingsView/Native/Android/Cells/EntryCellView.cs",
"chars": 11894,
"preview": "using System;\nusing AiForms.Settings.Extensions;\nusing Android.Content;\nusing Android.Content.Res;\nusing Android.OS;\nus"
},
{
"path": "SettingsView/Native/Android/Cells/LabelCellView.cs",
"chars": 6026,
"preview": "using System;\nusing Android.Content;\nusing Android.Runtime;\nusing Android.Text;\nusing Android.Views;\nusing Android.Widg"
},
{
"path": "SettingsView/Native/Android/Cells/NumberPickerCellView.cs",
"chars": 6502,
"preview": "using System;\nusing Android.Content;\nusing Android.Runtime;\nusing Android.Text;\nusing Android.Views;\nusing Android.Widg"
},
{
"path": "SettingsView/Native/Android/Cells/RadioCellView.cs",
"chars": 4952,
"preview": "using System;\nusing Android.Content;\nusing Android.Runtime;\nusing Android.Views;\nusing Android.Widget;\nusing Microsoft."
},
{
"path": "SettingsView/Native/Android/Cells/SimpleCheck.cs",
"chars": 2632,
"preview": "using System;\nusing Android.Graphics;\nusing Microsoft.Maui.Graphics;\nusing Microsoft.Maui.Platform;\nusing AView = Andro"
},
{
"path": "SettingsView/Native/Android/Cells/SimpleCheckCellView.cs",
"chars": 2118,
"preview": "using System;\nusing System.ComponentModel;\nusing Android.Content;\nusing Android.Views;\nusing Android.Widget;\nusing Micr"
},
{
"path": "SettingsView/Native/Android/Cells/SwitchCellView.cs",
"chars": 5999,
"preview": "using System;\nusing Android.Content;\nusing Android.Content.Res;\nusing Android.Graphics.Drawables;\nusing Android.Runtime"
},
{
"path": "SettingsView/Native/Android/Cells/TextPickerCellView.cs",
"chars": 5117,
"preview": "using System;\nusing Android.Content;\nusing Android.Runtime;\nusing Android.Views;\nusing System.Windows.Input;\nusing APic"
},
{
"path": "SettingsView/Native/Android/Cells/TimePickerCellView.cs",
"chars": 3446,
"preview": "using System;\nusing Android.App;\nusing Android.Content;\nusing Android.Runtime;\nusing Android.Widget;\nusing Android.Text"
},
{
"path": "SettingsView/Native/Android/DrawableUtility.cs",
"chars": 1338,
"preview": "using System;\nusing Android.Content.Res;\nusing Android.Graphics.Drawables;\n\nnamespace AiForms.Settings.Platforms.Droid;"
},
{
"path": "SettingsView/Native/Android/Extensions/LayoutAlignmentExtensions.cs",
"chars": 1473,
"preview": "using System;\nusing Android.Views;\n\nnamespace AiForms.Settings.Platforms.Droid;\n\r\n/// <summary>\n/// Layout alignment ex"
},
{
"path": "SettingsView/Native/Android/Extensions/TextAlignmentExtensions.cs",
"chars": 967,
"preview": "using System;\nusing GravityFlags = Android.Views.GravityFlags;\n\nnamespace AiForms.Settings.Platforms.Droid;\n\r\n/// <summ"
},
{
"path": "SettingsView/Native/Android/Extensions/ViewExtension.cs",
"chars": 1003,
"preview": "#nullable enable\nusing System;\nusing Android.Views;\n\nnamespace AiForms.Settings.Platforms.Droid;\n\r\n[Android.Runtime.Pre"
},
{
"path": "SettingsView/Native/Android/Extensions/ViewHandlerExtension.cs",
"chars": 3059,
"preview": "#nullable enable\nusing System;\nusing Android.Views;\nusing Microsoft.Maui.Platform;\nusing static Android.Views.View;\n\nna"
},
{
"path": "SettingsView/Native/Android/FormsViewContainer.cs",
"chars": 5780,
"preview": "using System;\nusing System.ComponentModel;\nusing System.Linq;\nusing Android.Content;\nusing Android.Views;\nusing Android"
},
{
"path": "SettingsView/Native/Android/HeaderFooterContainer.cs",
"chars": 5635,
"preview": "using System;\nusing System.ComponentModel;\nusing System.Linq;\nusing Android.Content;\nusing Android.Widget;\nusing Androi"
},
{
"path": "SettingsView/Native/Android/ModelProxy.cs",
"chars": 9658,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Collections.Specialized;\nusing System.Linq;\nusing Android."
},
{
"path": "SettingsView/Native/Android/SVItemdecoration.cs",
"chars": 2491,
"preview": "using System.Linq;\nusing Android.Graphics;\nusing Android.Graphics.Drawables;\nusing AndroidX.RecyclerView.Widget;\nusing "
},
{
"path": "SettingsView/Native/Android/SettingsViewLayoutManager.cs",
"chars": 1604,
"preview": "using System.Collections.Generic;\nusing System.Linq;\nusing AndroidX.RecyclerView.Widget;\nusing Microsoft.Maui.Platform;"
},
{
"path": "SettingsView/Native/Android/SettingsViewRecyclerAdapter.cs",
"chars": 17161,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing AiForms.Settings.Extensions;\nusing Android.Con"
},
{
"path": "SettingsView/Native/Android/ViewHolders.cs",
"chars": 3109,
"preview": "using Android.Views;\nusing Android.Widget;\nusing AndroidX.RecyclerView.Widget;\nusing Microsoft.Maui.Controls.Compatibil"
},
{
"path": "SettingsView/Native/iOS/AiTableView.cs",
"chars": 14128,
"preview": "using System;\nusing System.Collections.Specialized;\nusing CoreGraphics;\nusing Foundation;\nusing Microsoft.Maui.Controls"
},
{
"path": "SettingsView/Native/iOS/Cells/ButtonCellView.cs",
"chars": 3646,
"preview": "using System;\nusing System.Windows.Input;\nusing Foundation;\nusing UIKit;\n\nnamespace AiForms.Settings.Platforms.iOS;\n\n//"
},
{
"path": "SettingsView/Native/iOS/Cells/CellBaseView.cs",
"chars": 24977,
"preview": "using System;\nusing System.ComponentModel;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing UIKit;\nusing Fou"
},
{
"path": "SettingsView/Native/iOS/Cells/CheckboxCellView.cs",
"chars": 6380,
"preview": "using CoreGraphics;\nusing Foundation;\nusing Microsoft.Maui.Platform;\nusing UIKit;\n\nnamespace AiForms.Settings.Platforms"
},
{
"path": "SettingsView/Native/iOS/Cells/CommandCellView.cs",
"chars": 3651,
"preview": "using System;\nusing System;\nusing UIKit;\nusing System.Windows.Input;\nusing Foundation;\n\nnamespace AiForms.Settings.Plat"
},
{
"path": "SettingsView/Native/iOS/Cells/CustomCellContent.cs",
"chars": 11163,
"preview": "using System;\nusing System.ComponentModel;\nusing System.Reflection;\nusing System.Reflection.Metadata;\nusing System.Runt"
},
{
"path": "SettingsView/Native/iOS/Cells/CustomCellView.cs",
"chars": 6751,
"preview": "using System;\nusing System.Windows.Input;\nusing Foundation;\nusing UIKit;\n\nnamespace AiForms.Settings.Platforms.iOS;\n\r\n["
},
{
"path": "SettingsView/Native/iOS/Cells/DatePickerCellView.cs",
"chars": 5994,
"preview": "using System;\nusing CoreGraphics;\nusing Foundation;\nusing Microsoft.Maui.Platform;\nusing UIKit;\n\nnamespace AiForms.Sett"
},
{
"path": "SettingsView/Native/iOS/Cells/EntryCellView.cs",
"chars": 9122,
"preview": "using System;\nusing System.Drawing;\nusing AiForms.Settings.Extensions;\nusing CoreGraphics;\nusing Foundation;\nusing Micr"
},
{
"path": "SettingsView/Native/iOS/Cells/LabelCellView.cs",
"chars": 4321,
"preview": "using System;\nusing System.ComponentModel;\nusing AiForms.Settings.Extensions;\nusing Microsoft.Maui.Controls.Platform;\nu"
},
{
"path": "SettingsView/Native/iOS/Cells/NumberPickerCellView.cs",
"chars": 6065,
"preview": "using System;\nusing System.Windows.Input;\nusing CoreGraphics;\nusing Foundation;\nusing Microsoft.Maui.Platform;\nusing UI"
},
{
"path": "SettingsView/Native/iOS/Cells/NumberPickerSource.cs",
"chars": 3298,
"preview": "using System;\nusing System.Collections.Generic;\nusing UIKit;\n\nnamespace AiForms.Settings.Platforms.iOS;\n\n[Foundation.Pr"
},
{
"path": "SettingsView/Native/iOS/Cells/RadioCellView.cs",
"chars": 4268,
"preview": "using System;\nusing System.ComponentModel;\nusing Foundation;\nusing Microsoft.Maui.Platform;\nusing UIKit;\n\nnamespace AiF"
},
{
"path": "SettingsView/Native/iOS/Cells/SimpleCheckCellView.cs",
"chars": 1469,
"preview": "using System;\nusing System.ComponentModel;\nusing Foundation;\nusing Microsoft.Maui.Platform;\nusing UIKit;\n\nnamespace AiF"
},
{
"path": "SettingsView/Native/iOS/Cells/SwitchCellView.cs",
"chars": 3658,
"preview": "using System;\nusing AiSwitchCell = AiForms.Settings.SwitchCell;\nusing UIKit;\nusing Foundation;\nusing Microsoft.Maui.Pla"
},
{
"path": "SettingsView/Native/iOS/Cells/TextPickerCellView.cs",
"chars": 5943,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Windows.Input;\nusing CoreGraphics;\nusing Foundation;\nusing"
},
{
"path": "SettingsView/Native/iOS/Cells/TextPickerSource.cs",
"chars": 2462,
"preview": "using System;\nusing System.Collections;\nusing UIKit;\n\nnamespace AiForms.Settings.Platforms.iOS;\n\n[Foundation.Preserve(A"
},
{
"path": "SettingsView/Native/iOS/Cells/TimePickerCellView.cs",
"chars": 5296,
"preview": "using System;\nusing CoreGraphics;\nusing Foundation;\nusing Microsoft.Maui.Platform;\nusing UIKit;\n\nnamespace AiForms.Sett"
},
{
"path": "SettingsView/Native/iOS/CustomHeaderFooterView.cs",
"chars": 10807,
"preview": "#nullable enable\nusing System;\nusing System.ComponentModel;\nusing AiForms.Settings.Extensions;\nusing CoreGraphics;\nusin"
},
{
"path": "SettingsView/Native/iOS/Extensions/DisposeHelpers.cs",
"chars": 2882,
"preview": "using System;\nusing System.Reflection;\n\nnamespace AiForms.Settings.Platforms.iOS;\n\r\npublic static class DisposeHelpers\n"
},
{
"path": "SettingsView/Native/iOS/Extensions/NSObjectExtension.cs",
"chars": 626,
"preview": "using System;\nusing Foundation;\n\nnamespace AiForms.Settings.Platforms.iOS;\n\r\npublic static class NSObjectExtension\n{\n "
}
]
// ... and 30 more files (download for full content)
About this extraction
This page contains the full source code of the muak/AiForms.Maui.SettingsView GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 230 files (744.1 KB), approximately 175.7k tokens, and a symbol index with 1199 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.