簡體   English   中英

將控件的IsEnabled屬性與另一個布爾屬性同步

[英]Synchronize the IsEnabled property of a control with another boolean property

我正在構建一個Xamarin應用程序,並且我有一個內容頁面,其中包含一個選擇器和一個開關。

當Picker的IsToggled屬性設置為true時,應該禁用Picker,反之亦然。 因此,我將涉及的各自屬性限制為ViewModel類的屬性,如下所示:

//XAML:
<Switch IsToggled="{Binding UseNearestShop}"/>
<Picker Title="Select your favorite shop" ItemsSource="{Binding AvailableShops}" SelectedItem="{Binding FavoriteShop}" IsEnabled="{Binding UseNearestShop, Converter={StaticResource booleanNegation}}"/>

因此,在初始化頁面時,是否根據我的ViewModel UseNearestShop屬性的值正確地切換了Picker(該值本身已通過Picker的切換正確地進行了修改)。

我的問題是: 每次修改UseNearestShop值時,如何修改IsEnabled屬性? 我是否必須為此在ViewModel中添加另一個屬性?

任何見識將不勝感激。

<StackLayout>
    <Switch x:Name="MySwitch" />
    <Picker IsEnabled="{Binding IsToggled, Source={x:Reference MySwitch}, Converter={StaticResource booleanNegation}}" />
</StackLayout>

您甚至可以從視圖模型中刪除令人興奮的屬性,而無需添加新屬性!

而且我認為您的當前代碼有問題,因為視圖模型中INotifyPropertyChanged的實現不正確。

暫無
暫無

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

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