2017-08-22 63 views
0

我想用滑塊綁定條目,反之亦然。我寫的是這樣的:滑塊和條目之間綁定的兩種方式

<Entry x:Name="myEntry" Text="{Binding Value, Mode=TwoWay}" BindingContext="{x:Reference slider}"/> 
<Slider x:Name="slider" Maximum="100" Minimum="0" BindingContext="{x:Reference myEntry}"/> 

當我使用滑塊,在項的值更新,但是當我在項目放置手動某個值,該值追加一個0或改爲0。能有什麼成爲問題。我正在研究android。

+0

你有一個BindingContext中設置的滑塊,但沒有價值的真正約束 – Jason

+0

其實,我想你d不需要爲滑塊定義BindingContext。一旦你在Entry上以雙向模式進行了操作,它應該在工作 –

+0

中考慮更多,你可能想在兩個控件上啓用雙向綁定,但將它們綁定到虛擬機的相同屬性。你不把他們綁在一起 – Jason

回答

0

您應該將滑塊和條目綁定到後備視圖模型中的字符串/整數。

class MyViewModel 
{ 
    private int _sliderValue; 
    public string EntryText 
    { 
     get => _sliderValue.ToString(); 
     set => SetProperty(ref _sliderValue, int.Parse(value)); 
    } 

    public int SliderValue 
    { 
     get => _sliderValue; 
     set => (ref _sliderValue, value); 
    } 
} 

並在視圖

<Entry Text="{Binding EntryText}" /> 
<Slider Value="{Binding SliderValue}" /> 

More MVVM Info

Fresh MVVM for Xamarin

Caliburn Micro for Xamarin

+0

的值時,您的lambda表達式給我帶來了很多錯誤(SetProperty在當前上下文中不存在)。有沒有更簡單的方法來做到這一點? – user3841581

+0

它實際上不起作用。我實現了SetProperty接口,但它仍然不工作 – user3841581

+0

該類需要實現INotifyPropertyChanged – Jason