精华内容
下载资源
问答
  • WPFConverter

    千次阅读 2018-10-08 10:58:24
    ,Converter={StaticResource SexConverter}}" Width="60"/> ,5,4.6,5" Height="188"/> 具体的代码链接: ( https://pan.baidu.com/s/10tlKrUbBndRz-yHqi2BmtA ) 另外,有一个时钟做的...

    需求中经常有这样的问题,我输入的是一种数据类型,但是我在界面显示的完全不同的东西。这样就需要转换。当然我可以将数据读进来的时候就转换,但是如果我读进来的是一个对象,里面有好多东西,我得把它一一找出来进行转换,最麻烦的为了绑定,我得一个一个绑定,或者存回对象里面去然后统一绑定。为了方便,我会设置一个类专门用于转换,但是WPF已经提供了一个Convert方法,我们可以在里面写,然后绑定的时候直接绑定就行了。


    比如我有一个学生类 Student.

    public class Student
        {
            public string ID { get; set; }
            public string Name { get; set; }
            public string Sex { get; set; }
        }
    

    客户给出的数据是

     new Student() { ID = "1", Name = "Peter", Sex = "0" },
                    new Student() { ID = "2", Name = "Tom", Sex = "1" },
                    new Student() { ID = "3", Name = "Ben", Sex = "0" }
    

    可见,sex这一项不是男女,按要求,0代表男,1代表女。所以需要显示出来的是男女而不是0,1.
    那么现在WPF界面设置一个listbox,他的ItemSource直接绑定stuList.

    List<Student> stuList = new List<Student>()
                {
                    new Student() { ID = "1", Name = "Peter", Sex = "0" },
                    new Student() { ID = "2", Name = "Tom", Sex = "1" },
                    new Student() { ID = "3", Name = "Ben", Sex = "0" }
                };
                this.listBoxStudent.ItemsSource = stuList;
    

    为了使sex转换,需要写一个类。

     public class SexConverter:IValueConverter
        {
            public object Convert (object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
            {
                string result = "";
                string sex = (string)value;
                if (sex == "0")
                {
                    result = "男";
                }
                else if (sex == "1")
                {
                    result = "女";
                }
                return result;
            }
            public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { throw new NotImplementedException(); }
        }
    

    这是个模板 ,所有的转换的公式都得照这个写。
    那么xaml里面也需要绑定相应的东西。
    里面的公式是这么写的。

    <Window x:Class="WpfApp1.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:WpfApp1"
            mc:Ignorable="d"
            Title="MainWindow" Height="450" Width="800">
        <Window.Resources>
                <!--引用资源-->
            <local:SexConverter x:Key="SexConverter"/>
                <Style TargetType="ListBoxItem">
                    <Setter Property="ContentTemplate">
                        <Setter.Value>
                            <DataTemplate>
                                <StackPanel Orientation="Horizontal">
                                    <TextBlock Text="{Binding ID}" Width="60"/>
                                    <TextBlock Text="{Binding Name}" Width="120"/>
                                    <TextBlock Text="{Binding Sex,Converter={StaticResource SexConverter}}" Width="60"/>
                                </StackPanel>
                            </DataTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>
            </Window.Resources>
        <StackPanel>
            <ListBox x:Name="listBoxStudent" Margin="5,5,4.6,5" Height="188"/>
        </StackPanel>
    </Window>
    
    

    具体的代码链接:
    (https://pan.baidu.com/s/10tlKrUbBndRz-yHqi2BmtA)


    另外,有一个时钟做的非常好,充分用来convert的特性,我也模仿做了一个,很好用,文章链接如下:第一种
    第二种

    展开全文
  • 效果如图: 根据下拉框fieldTypeComboBox,控制其他控件的显隐 关键代码 <ComboBox Grid.Column="1" Grid.Row="2" DataContext="{Binding FieldTypeEnumInfos}" ItemsSource="{Binding }" Name=...

    效果如图:

    根据下拉框fieldTypeComboBox,控制其他控件的显隐

    关键代码

    <ComboBox Grid.Column="1" Grid.Row="2" DataContext="{Binding FieldTypeEnumInfos}" ItemsSource="{Binding }" Name="fieldTypeComboBox" DisplayMemberPath="Description" SelectedValuePath="Value"></ComboBox>
    <CheckBox Grid.Column="1" Grid.Row="3" IsChecked="{Binding IsUniqueKey,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Visibility="{Binding SelectedItem,ElementName=fieldTypeComboBox,Converter={StaticResource EditFieldVisibilityConverter},ConverterParameter=IsUniqueKey}"></CheckBox>
    

    示例代码

    Converters

    展开全文
  • wpf 添加converter

    2021-04-06 15:39:41
    McsfRestoreTool.Converters是converter所在的namespace,如果一开始报找不到,可以尝试清理解决方案 还有切换any cpu 和x64 ResourceDictionary 引入具体的converter public class BoolToSuccessC.
    1. xml 添加引用:
      xmlns:Converters ="clr-namespace:McsfRestoreTool.Converters"
    • 其中Converters可以随便填,它是一个标签名
      McsfRestoreTool.Converters是converter所在的namespace,如果一开始报找不到,可以尝试清理解决方案 还有切换any cpu 和x64
    1. ResourceDictionary 引入具体的converter
      在这里插入图片描述
        public class BoolToSuccessConverter : IValueConverter
        {
            public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
            {
                if (value == null)
                {
                    McsfRestoreLogger.WriteLog("[BoolToSuccessConverter]: value is null.");
                    return false;
                }
                else
                {
                    if ((bool)value)
                    {
                        return "Success";
                    }
                    else
                    {
                        McsfRestoreLogger.WriteLog("[BoolToSuccessConverter]: value is ." + value);
                        return "Failed";
                    }
                }
            }
    
            public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
            {
                throw new NotImplementedException();
            }
        }
    
    展开全文
  • 本篇文章小编将为大家介绍,关于WPF使用MultiConverter控制Button状态的详细介绍。需要的朋友参考下
  • 形如下,将converter的类库引用进来 <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:dxe=...

    形如下,将converter的类库引用进来

    <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                        xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors" 
                        xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
                        xmlns:Custom="http://schemas.devexpress.com/winfx/2008/xaml/editors/internal"
                        xmlns:local="clr-namespace:HLZD.SMS.UI.WPF.Resources.Controls"
                        xmlns:converter="clr-namespace:HLZD.SMS.UI.WPF.Projects.GrapDispatching"
                        xmlns:dxlc="http://schemas.devexpress.com/winfx/2008/xaml/layoutcontrol">
    
        <Style TargetType="dxlc:LayoutItem" x:Key="addnewPlan">
            <Setter Property="AddColonToLabel" Value="True"/>
            <Setter Property="LabelHorizontalAlignment" Value="Right"/>
            <Setter Property="LabelTemplate">
                <Setter.Value>
                    <DataTemplate>
                        <TextBlock Width="96" Height="16"  TextAlignment="Right">
                            <TextBlock.Style>
                                <Style>
                                    <Setter Property="TextBlock.Text">
                                        <Setter.Value>
                                            <Binding>
                                                <Binding.Converter>
                                                    <converter:ReplaceChar />
                                                </Binding.Converter>
                                            </Binding>
                                        </Setter.Value>
                                    </Setter>
                                </Style>
                            </TextBlock.Style>
                        </TextBlock>
                    </DataTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    
    </ResourceDictionary>
    

    最主要是这句

    <TextBlock Width="96" Height="16"  TextAlignment="Right">
                            <TextBlock.Style>
                                <Style>
                                    <Setter Property="TextBlock.Text">
                                        <Setter.Value>
                                            <Binding>
                                                <Binding.Converter>
                                                    <converter:ReplaceChar />
                                                </Binding.Converter>
                                            </Binding>
                                        </Setter.Value>
                                    </Setter>
                                </Style>
                            </TextBlock.Style>
                        </TextBlock>
    

    https://stackoverflow.com/questions/6971714/how-to-use-a-converter-inside-a-resourcedictionary

    展开全文
  • 需求:窗口中有红黄蓝三个矩形,显示其中一个矩形时隐藏另外两个矩形。 xaml代码 <Window x:Class="WpfBinding.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" ...
  • wpf使用Converter时,如果在同一行中不同列使用同一个Converter,可用ConverterParameter设置参数控制;如果是在同一个数据集中不同的行使用Converter又需要不同的场景,使用MultiConverter来解决 ...
  • WPF学习

    万次阅读 多人点赞 2019-03-05 22:00:17
    首先感谢刘铁锰先生的《深入浅出WPF》,学习WPF过程碰上很多新概念,如Data Binding、路由事件,命令、各种模板等。 WPF:编写CS端的UI技术。 怎么去掉WPF窗体靠上多出黑色的长条?在vs界面的菜单栏点击调试-选项...
  • 效果如图 上图中,最下方TextBlock控件的Visibility属性由...local:MultiBinding2Converter x:Key="MultiBinding2Converter"></local:MultiBinding2Converter> <TextBlock Text="判断是否显示的文字
  • wpf converter

    2019-09-25 15:57:16
    "{Binding Path=Text, ElementName=txtFirstName,Converter={StaticResource checkBoxCheckConverter}}" > < / CheckBox > < TextBlock Text = "MultiValue Converter Exampkle" HorizontalAlignment = ...
  • WPFConverter的使用

    万次阅读 2016-04-02 16:54:38
    WPFConverter的用于对数据的转换。以下实例将实现将数据中的性别属性的转换(0:男,1:女)。 1、创建SexConverter.cs类,并实现IValueConverter接口 public class SexConverter : IValueConverter { public ...
  • wpf 给控件绑定静态变量,静态变理改变后控件上的值随着变量的demo,这只是个demo,具体应用场景可以根据实际的情况进行调整,本demo使用 vs2019进行编写。
  • } #endregion 转换器的实现 public class StringToImageSourceConverter : IValueConverter { #region Converter public object Convert(object value, Type targetType, object parameter, CultureInfo culture) {...
  • Path Data="{Binding DataContext, RelativeSource={RelativeSource AncestorType=DataGridRow}, Converter={StaticResource MmsDataToPathConverter}}" /> 获得DataGridRow <Path Data="{Binding ., ...
  • 一个可以完成所有工作的WPF Converter类 安装: MathConverter在上可用 要安装MathConverter,请在运行以下命令: PM> Install-Package MathConverter 什么是MathConverter? 在WPF中,绑定绝对不可思议。 它们...
  • WPF 实现CheckBox全选、反选功能,界面简单实用,功能代码可以很好地套用到自己的项目,希望对有需要的小伙伴有帮助。
  • 用Binding并通过Converter转换的时候,可能偶尔会遇到传参的问题,一般通过设置xaml中的BindingParameter属性来给Converter传递参数。但是这个BindingParameter只支持已经定义好的资源类型(Resource),不支持int,...
  • WPF 转换器(Converter)的使用 示例一、ViewModel层int型属性Gender绑定界面表示性别的两个RadioButton,Gender=1表示男,Gender=2表示女; 窗体xaml代码: <Window x:Class="WpfApp1.MainWindow" xmlns=...
  • WPF Converter 根据性别显示图片

    千次阅读 2014-02-23 20:49:58
     <Converter:ImageConverter x:Key="ImageConverter" xmlns:Converter="clr-namespace:Wpf001.Utility" />        男" IsChecked="True" GroupName="sex" HorizontalAlignment="Left" Margin="40,39,0,...
  • Foreground="{Binding Status,Converter={StaticResource foreColor},Mode=OneWay}" VerticalAlignment="Top" Width="120"/> ,160,0,0" TextWrapping="Wrap" Text="{Binding Status,UpdateSourceTrigger=LostFocus...
  • wpf 之ComboBox的用法

    千次阅读 2015-03-28 11:04:20
    一 基本操作    ComboBox comboBoxSrialFont =new ComboBox ();  comboBoxSrialFont.Items.Add("ASD");  comboBoxAutoGateDownFlg.SelectedIndex = 1;  //设置 当前 算选择 的 当前项
  • WPF Converter

    2020-09-22 19:16:32
    public class BrushToColorConverter : IValueConverter { public static readonly BrushToColorConverter Instance = new BrushToColorConverter(); BrushToColorConverter() { } public object Convert(o.....
  • <MultiBinding Converter="{StaticResource getRangeString}"> <Binding Path="nowQuaryCondition.ageLower"></Binding> <Binding Path="nowQuaryCondition.ageUpper"></Binding> 类似于这样就可以了,只...
  • 最近碰到bingding设置了convert转换无效的问题。困扰了我好久。这里记录分析一下。 先说下现象 我把TextBox的text属性 绑定到了对应的 convert.... ...希望吧pd_no转义成产品名称 ...断点跟进显示转换器有效且转换成功了,...
  • WPF Converter 使用复杂参数的方法     Step 1 在WPF的C#代码文件中给定义复杂类型的变量,并给其赋值; Sample code: List<User>lsUser=。。。。 Setp 2 在 C#代码对应的XAML 中将此复杂参数...
  • WPF的bool2Visibility转换器使用
  • WPF货币转换器 对C#中的UI和代码进行的有趣的小实验
  • WPF 绑定中Converter的应用

    千次阅读 2016-03-21 18:33:48
    WPF 经常用到绑定,如果绑定的源数据和目标属性是同类型的则不需要转换。比如 如果是不同类型的数据我们要怎么做呢?比如有一个文本框,一个按钮,我一个文本框里输入一个的数字用来代表颜色,1表示“红色”,2 ...
  • WPF在MVVM模式下通过Converter控制不同CheckBox对应不同枚举类型勾选,比如我现在描述一个人有八种行为,这八种行为分别通过8个CheckBox来标识,如果存在这种行为则勾选,不存在则不勾选

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,069
精华内容 1,227
关键字:

converterwpf