1.概要
数据绑定,有时候绑定的数据源和目标的数据类型不同,这时候就需要转换。
2.代码
2.1 xaml(eXtensible Application Markup Language) 可扩展应用程序标记语言
<Window x:Class="WpfApp6.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:WpfApp6"mc:Ignorable="d"Title="MainWindow" Height="100" Width="300"><Window.Resources><local:boolchange x:Key="boolkey"></local:boolchange></Window.Resources><StackPanel><TextBox Name="source1"></TextBox><TextBlock Text="YES"></TextBlock><CheckBox IsChecked="{Binding ElementName=source1, Path=Text,Converter={StaticResource boolkey}}"></CheckBox></StackPanel>
</Window>
2.2 code
using System.Globalization;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;namespace WpfApp6
{/// <summary>/// Interaction logic for MainWindow.xaml/// </summary>public partial class MainWindow : Window{public MainWindow(){InitializeComponent();}}public class boolchange : IValueConverter{public object Convert(object value, Type targetType, object parameter, CultureInfo culture){string? str = value.ToString().ToLower();switch(str){case "yes":return true;case "no": return false; }return false;}public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture){throw new NotImplementedException();}}
}
3.运行结果