簡體   English   中英

在XAML中綁定

[英]Binding in XAML

我創建了三個滑塊,可將數據快速輸入Windows Store APP。 每個滑塊的范圍是0-9,在TextBox中全部代表一個介於000-999之間的值。

我可以使用以下公式計算值

int result = Slider1.Value * 100 + Slider2.Value * 10 + Slider3.Value;

我可以簡單地將其附加到每個滑塊的ValueChanged事件,但是通過XAML綁定有一種更優雅的方法。 我創造了這樣的東西

public class MyViewModel
{
    public MyViewModel() { }

    public double TotalValue { get; set; }
}

但我無法訪問任何滑塊。 有什么方法可以將它們作為構造函數參數傳遞? 或任何其他方式執行此綁定?

編輯添加數據上下文

<Page.DataContext>
    <local:MyViewModel/>
</Page.DataContext>

將每個滑塊值綁定到視圖模型中的屬性:

(確保實現INotifyPropertyChanged)

public class MyViewModel:INotifyPropertyChanged
    {
        public MyViewModel()
        {

        }

        private double valueSlider1;
        public double ValueSlider1
        {
           get { return valueSlider1; }
           set
           {
              valueSlider1 = value;
              RaisePropertyChanged("ValueSlider1");
              RaisePropertyChanged("TotalValue ");
           }
        }
        private double valueSlider2;
        public double ValueSlider2
        {
           get { return valueSlider2; }
           set
           {
              valueSlider2 = value;
              RaisePropertyChanged("ValueSlider2");
              RaisePropertyChanged("TotalValue ");
           }
        }
        private double valueSlider3;
        public double ValueSlider3
        {
           get { return valueSlider3; }
           set
           {
              valueSlider3 = value;
              RaisePropertyChanged("ValueSlider3");
              RaisePropertyChanged("TotalValue ");
           }
        }
        public double TotalValue
        {
           get { return ValueSlider1*100+ValueSlider2*10+ValueSlider3; }
        }

        public event PropertyChangedEventHandler PropertyChanged;
        private void RaisePropertyChanged(string propertyName)
        {
             var handler = this.PropertyChanged;
             if (handler != null)
             {
                handler(this, new PropertyChangedEventArgs(propertyName));
             }
        }
    }

然后,以這種方式將綁定應用於滑塊:

<Slider Value="{Binding SliderValue1, Mode=TwoWay}" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM