3
我們有一個使用Template10的UWP應用程序。有一個文本塊和文本框顯示折扣。我們希望在ViewModel.Discount
爲空時隱藏文本塊。當null時隱藏xaml元素
在App.xaml中,我們定義了一個轉換器
<T10Converters:ValueWhenConverter x:Key="HideWhenNullConverter" When="{x:Null}">
<T10Converters:ValueWhenConverter.Value>
<Visibility>Collapsed</Visibility>
</T10Converters:ValueWhenConverter.Value>
<T10Converters:ValueWhenConverter.Otherwise>
<Visibility>Visible</Visibility>
</T10Converters:ValueWhenConverter.Otherwise>
</T10Converters:ValueWhenConverter>
在我們設定的TextBlock
Visibility="{x:Bind ViewModel.Discount, Converter={StaticResource HideWhenNullConverter}}"
的可見性在視圖模型視圖:
public class ViewModel : ViewModelBase
{
decimal? _Discount = default(decimal?);
public decimal? Discount
{
get
{
return _Discount;
}
set
{
if (value == 0) value = null;
Set(ref _Discount, value);
}
}
然而,即使ViewModel.Discount
的值爲空,textblock始終可見。當ViewModel.Discount
爲空時,我們如何隱藏文本塊
您還可以聲明可見性邏輯是ViewModel的責任。最新的UWP可以直接將可見性綁定到布爾。想象一下,你以後有額外的業務規則,如最高價格左右。 –
@HenkHolterman不錯,謝謝你提到 - 我已經[想念這個] [https://social.technet.microsoft.com/wiki/contents/articles/34846.uwp-compiled-binding-windows-10-anniversary -update.aspx)。 – Romasz
In _14393_,'Visibility =「{x:Bind ViewModel.Discount.HasValue,Mode = OneWay}」'。 –