WPF 转换器
一.值转换器示例:
先添加添加一个转换器类MyConverters,然后继承接口IValueConverter;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;
namespace WPF0317
{
class MyConverters:IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if(value != null)
{
string str = value.ToString();
if(str == "0")
{
return "GOOD";
}
return "FINE";
}
return "FINE";
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
}
主窗体Xaml代码:
<Window x:Class="WPF0317.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WPF0317"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<local:MyConverters x:Key="cvt1"></local:MyConverters>
</Window.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0">
<TextBox Text="0" FontSize="50" Name="textblock1"></TextBox>
<TextBlock FontSize="50" Text="{Binding Path=Text, ElementName=textblock1, Converter={StaticResource cvt1}}"></TextBlock>
</StackPanel>
<Grid Grid.Column="1">
</Grid>
</Grid>
</Window>
当在TextBox中输入0时,TextBlock显示GOOD;当向TextBox中输入1时,TextBlock显示FINE;