get { return new RelayCommand((obj) =>
{
if(obj is int ival)
{
Winforms.FolderBrowserDialog fbd = new Winforms.FolderBrowserDialog();
fbd.RootFolder = Environment.SpecialFolder.DesktopDirectory;
fbd.Description = "Select Folder";
fbd.ShowNewFolderButton = false;
if (fbd.ShowDialog() == Winforms.DialogResult.OK)
{
if(ivalue == 0) TextBox1 = fbd.SelectedPath;
else if (ivalue ==1) TextBox2 = fbd.SelectedPath;
}
}
}); }
Будьте любезны, поясните мне правильно ли я понял, что этот ишшуй, который вы скинули выше связан с реализацией эффективного виртуального DOM с помощью инкрементальных вычислений?
И если так, то где можно получше ознакомиться с темой инкрементальных вычислений?
Насколько сильно этот подход изменит для пользователя АПИ то, как он будет писать код?
я правильно понял, что этот подход можно использовать вообще для практически любых вычислений, а не только для виртуального DOM?
Поддержка, конечно, не такая как у C#, но если не продвигать язык, то это и не изменится. Это ведь замкнутый круг.
самое красивое на Xamarin.Forms для F#— это подход Elmish. Фреймворк Fabulous предоставляет эти функции.
да, на Xamarin.Forms. Пока за мобилку не взялся, на этапе разработки АПИ, но не думаю, что будут какие-то проблемы.
public class Ingredient
{
public int ID { get; }
public string Name { get; }
public Ingredient(int id, string name)
{
ID = id;
Name = name;
}
}
Ingredients.Clear();
foreach(var ingredient in GetIngredients())
Ingredients.Add(ingredient);
по поводу первой части, то тут просто - список не зависит от условий, поэтому можно вынести "за скобки":
От второй никуда не деться, но есть вариант спрятать "генерацию":
PropertyChanged
Хотя я бы просто посоветовал создать ViewModelBase чтобы немного сократить сеттеры. Да и в целом удобнее.