自定義值轉換器

weixin_34104341發表於2020-04-07

當我們在前臺寫頁面的時候,有時候後臺給我們的資料並不是現成可用的,我們需要自己再轉化一下才可以使用,所以,我們需要建立一個前臺的資料轉化工具類

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>

 

轉載於:https://www.cnblogs.com/zhuzhenyu/archive/2012/12/03/2799918.html

相關文章