Binding FlatRedBall.Forms
Last updated
Was this helpful?
Was this helpful?
class FormsScreenViewModel : ViewModel
{
public string TextBoxText
{
get => Get<string>();
set => Set(value);
}
[DependsOn(nameof(TextBoxText))]
public bool IsAddButtonEnabled => !string.IsNullOrEmpty(TextBoxText);
public ObservableCollection<string> ListBoxItems
{
get => Get<ObservableCollection<string>>();
private set => Set(value);
}
public string SelectedItem
{
get => Get<string>();
set => Set(value);
}
[DependsOn(nameof(SelectedItem))]
public bool IsRemoveButtonEnabled => !string.IsNullOrEmpty(SelectedItem);
public FormsScreenViewModel()
{
ListBoxItems = new ObservableCollection<string>();
}
}public partial class FormsScreen
{
FormsScreenViewModel ViewModel;
void CustomInitialize()
{
ViewModel = new FormsScreenViewModel();
Forms.BindingContext = ViewModel;
Forms.TextBoxInstance.SetBinding(
nameof(Forms.TextBoxInstance.Text),
nameof(ViewModel.TextBoxText));
Forms.AddButton.SetBinding(
nameof(Forms.AddButton.IsEnabled),
nameof(ViewModel.IsAddButtonEnabled));
Forms.ListBoxInstance.SetBinding(
nameof(Forms.ListBoxInstance.Items),
nameof(ViewModel.ListBoxItems));
Forms.ListBoxInstance.SetBinding(
nameof(Forms.ListBoxInstance.SelectedObject),
nameof(ViewModel.SelectedItem));
Forms.RemoveButton.SetBinding(
nameof(Forms.RemoveButton.IsEnabled),
nameof(ViewModel.IsRemoveButtonEnabled));
Forms.AddButton.Click += (not, used) =>
{
ViewModel.ListBoxItems.Add(ViewModel.TextBoxText);
ViewModel.TextBoxText = null;
};
Forms.RemoveButton.Click += (not, used) =>
{
ViewModel.ListBoxItems.Remove(ViewModel.SelectedItem);
};
}
...