[英]C#, XAML, WPF: Best way to do complex binding including textboxes and checkboxes
我有兩個文本框和一個復選框(以及其他類似情況),在這里我希望程序以后使用的基礎數據對象(兩個int)等於文本框中的內容,除非選中該復選框,在這種情況下它們應該分別為0和Int.max。
使用WPF綁定執行此操作的最佳方法是什么? 我認為我必須以某種方式使用多重綁定? 另一種可能性是,如果可能的話,將值鏈接在一起(?),即checkbox.IsChecked通過某個自定義轉換器綁定到textBox.Text,該自定義轉換器綁定到基礎數據對象。
你會怎么做? 在我看來,多重綁定是有意義的,其中多個事物以某種方式累積影響另一事物,並且鏈式在任何可能的地方都更有意義,對嗎? 我有一個與上面類似的情況,但還包括一個滑塊。
最簡單的方法是使用MVVM方法。 構建一個實現所需邏輯的ViewModel:
public class MyViewModel : ViewModelBase
{
private int _min;
public int Min
{
get { return _min; }
set
{
_min = value;
OnPropertyChanged("Min");
OnPropertyChanged("ActualMin");
}
}
private int _max;
public int Max
{
get { return _max; }
set
{
_max = value;
OnPropertyChanged("Max");
OnPropertyChanged("ActualMax");
}
}
private bool _useMinMax;
public bool UseMinMax
{
get { return _useMinMax; }
set
{
_useMinMax = value;
OnPropertyChanged("UseMinMax");
OnPropertyChanged("ActualMin");
OnPropertyChanged("ActualMax");
}
}
public int ActualMin
{
get { return _useMinMax ? _min : 0; }
}
public int ActualMax
{
get { return _useMinMax ? _max : int.MaxValue; }
}
}
將文本框綁定到Min
和Max
,然后將CheckBox
綁定到UseMinMax
。 然后使用ActualMin
和ActualMax
獲取要使用的實際值。
我會使用MVVM方法。 在視圖模型層中,您可以輸入想要使UI表現出目標的任何邏輯。 簡單,快速,可靠。
您可以使用MVVM。 在這里,有視頻,還有免費:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.