當我們在前臺寫頁面的時候,有時候後臺給我們的資料並不是現成可用的,我們需要自己再轉化一下才可以使用,所以,我們需要建立一個前臺的資料轉化工具類
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Windows.UI.Xaml; using Windows.UI.Xaml.Data; namespace GridExp { public class BoolVisibilityConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, string language) { //value是Model中的資料,返回值是轉換後UI中的資料 bool b = (bool)value; return b ? Visibility.Visible : Visibility.Collapsed; } public object ConvertBack(object value, Type targetType, object parameter, string language) { //value是UI中的資料型別轉換成為Model中的值(TwoWay繫結) Visibility v = (Visibility)value; return v == Visibility.Visible; } } }
再在第一個標籤裡面引用這個類所在的名稱空間
<common:LayoutAwarePage x:Name="pageRoot" x:Class="GridExp.GroupedItemsPage" DataContext="{Binding DefaultViewModel, RelativeSource={RelativeSource Self}}" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:GridExp" xmlns:data="using:GridExp.Data" xmlns:common="using:GridExp.Common" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d">
再設定一個資源,相當於在這個頁面裡面NEW了一個物件
<Page.Resources> <!-- 此頁所顯示的分組項的集合,繫結到完整 項列表的子集,因為無法虛擬化組中的項 --> <local:BoolVisibilityConverter x:Key="booVisConverter"></local:BoolVisibilityConverter>
最後,在呼叫的地方使用
<Image Source="images/w_mengchong.jpg" Visibility="{Binding IsUnMem,Converter={StaticResource booVisConverter}}" Width="50" Height="50"></Image>