首页 > 其他分享 >单值转换器

单值转换器

时间:2023-12-22 17:00:14浏览次数:25  
标签:单值 object return 绑定 HTuple value 转换器

https://www.cnblogs.com/tianma3798/p/5927470.html

 

1.当值从绑定源(属性)传播给绑定目标(例XAML中的TextBox的Text)时,调用方法Convert

2.当值从绑定目标传播给绑定源时,调用此方法ConvertBack,方法ConvertBack的实现必须是方法Convert的反向实现。

以下例子为HTuple属性与XAML中的TextBox的Text绑定,由于HTuple类型无法使用INotifyPropertyChanged接口,并且无法进行HTuple和string类型的的绑定,故使用下例:

public class TimeConver : IValueConverter
{
    /// <summary> 转换值。 </summary>
    /// <param name = "value"> 绑定源生成的值。 </param>
    /// <param name = "targetType"> 绑定目标属性的类型。 </param>
    /// <param name = "parameter"> 要使用的转换器参数。 </param>
    /// <param name = "culture"> 要用在转换器中的区域性。 </param>
    /// <returns>
    /// 转换后的值。
    /// 如果该方法返回 <see langword = "null"/>,则使用有效的 null 值。
    /// </returns>
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        if (value == null)
        {
            return DependencyProperty.UnsetValue;
        }

        return value.ToString();
    }

    /// <summary> 转换值。 </summary>
    /// <param name = "value"> 绑定目标生成的值。 </param>
    /// <param name = "targetType"> 要转换为的类型。 </param>
    /// <param name = "parameter"> 要使用的转换器参数。 </param>
    /// <param name = "culture"> 要用在转换器中的区域性。 </param>
    /// <returns>
    /// 转换后的值。
    /// 如果该方法返回 <see langword = "null"/>,则使用有效的 null 值。
    /// </returns>
    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        var str = value as string;
        return (HTuple) str;
        // return DependencyProperty.UnsetValue;
    }
}

注:返回值DependencyProperty.UnsetValue表示转换器没有生成任何值。

在xaml中引用TimeConver的命名空间:

xmlns:local="clr-namespace:DTJY4180.Main.Vision.Shape.Common"

在xaml中定义Resources:

    <UserControl.Resources>
        <local:TimeConver x:Key="Conver" />
    </UserControl.Resources>

在xaml中Binding值使用自定义Converter转换 :

  Converter={StaticResource Conver}}

<TextBox x:Name="NumLevelsBox" Margin="2.5" Height="20"
         Text="{Binding NumLevels,Converter={StaticResource Conver}}" />
<TextBox x:Name="StartAngleBox" Margin="2.5" Height="20"
         Text="{Binding AngleStart,Converter={StaticResource Conver}}" />
<TextBox x:Name="EndAngleBox" Margin="2.5" Height="20"
         Text="{Binding AngleExtent,Converter={StaticResource Conver}}" />
<TextBox x:Name="AngleStepBox" Margin="2.5" Height="20"
         Text="{Binding AngleStep,Converter={StaticResource Conver}}" />
<TextBox x:Name="OptimizationBox" Margin="2.5" Height="20"
         Text="{Binding Optimization,Converter={StaticResource Conver}}" />
<TextBox x:Name="MetricBox" Margin="2.5" Height="20"
         Text="{Binding Metric,Converter={StaticResource Conver}}" />
<TextBox x:Name="ContrastBox" Margin="2.5" Height="20"
         Text="{Binding Contrast,Converter={StaticResource Conver}}" />
<TextBox x:Name="MinContrastBox" Margin="2.5" Height="20"
         Text="{Binding MinContrast,Converter={StaticResource Conver}}" />

 某一个属性:

 

 

最后结果能实现HTuple和string属性的绑定:

  改变属性值:

   

  XAML中绑定的TextBox的Text随之改变

   

标签:单值,object,return,绑定,HTuple,value,转换器
From: https://www.cnblogs.com/shieryoufeng/p/17921987.html

相关文章

  • WPF 装饰器 、 转换器
    十年河东,十年河西,莫欺少年穷学无止境,精益求精装饰器参考:https://www.cnblogs.com/xietianjiao/p/11239558.html wpf转换器详情参考:https://www.cnblogs.com/zh7791/p/9311332.html单值转换器需继承自IValueConverterpublicclassMyNumberConverter:IValueConvert......
  • 汉源高科30路32路电话光端机 PCM语音电话光纤收发器 光电转换器
    32路电话光端机HY-32P是汉源高科(北京)科技有限公司采用自主知识产权的大规模集成电路,应用时分复用技术,将以太网信号和电话信号混合编码后在一对光纤上传输。实现热线电话业务传输,传输通道为光传输通道。该机采用1U机架式设计,集成度高,体积小,功耗低,工作可靠,安装使用方便。主要功能与特......
  • 汉源高科2路电话光端机SC接口 PCM语音电话光纤收发器 光电转换器
    2路电话光端机HY-2P是汉源高科(北京)科技有限公司采用自主知识产权的大规模集成电路,应用时分复用技术,将以太网信号和电话信号混合编码后在一对光纤上传输。实现热线电话业务传输,传输通道为光传输通道。该机采用桌面式设计,集成度高,体积小,功耗低,工作可靠,安装使用方便。主要功能与特点1:......
  • 世微 AP9166 DC-DC同步降压恒压芯片 18V 2A同步降压转换器
     600KHz,18V,2A同步降压转换器概述AP9166是一款完全集成的效率2A同步整流降压转换器。AP9166运行在宽输出电流上以高效率负载范围。此设备提供两个操作模式、PWM控制和PFM模式切换控制,允许更宽范围的高效率负载AP9166至少需要现成标准的数量外部组件,在中可用符合SOT23-6标准的6针......
  • 降压转换器
    一、基本概述TheTPS543xisahigh-output-currentPWMconverterthatintegratesalow-resistance,high-sideN-channelMOSFET.Includedonthesubstratewiththelistedfeaturesareahigh-performancevoltageerroramplifierthatprovidestightvoltageregulatio......
  • 汉源高科DIN卡轨式工业级485-422-232三合一数据环网光端机458环网光纤收发器转换器
    HY5700-RS485/RING是汉源高科为工业应用而开发设计的一款工业级485-422-232三合一数据环网光端机/环网串口光纤MODEM。设备提供1路RS-485串口/1路RS422串口/1路RS232串口和2路光纤接口+1个拨码开关,拨码开关可实现设备主从配置。采用数据流向自动控制技术,自动侦测串口速率,自动判别......
  • RabbitMQ 消息转换器
     代码示例:1.引入依赖<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId></dependency>2.在启动类中创建Beanpackagecom.itheima;importorg.springframework.amqp.rabbit.core.Rabbi......
  • 消息转换器
    Spring会把你发送的消息序列化为字节发送给MQ,接收消息的时候,还会把字节反序列化为Java对象。只不过,默认情况下Spring采用的序列化方式是JDK序列化。众所周知,JDK序列化存在下列问题:数据体积过大有安全漏洞可读性差c配置JSON转换器显然,JDK序列化方式并不合适。我们希......
  • Flask(2)-动态路由&转换器
    动态路由1@app.route("/user/<name>")2defshow_user(name):3return"Mynameis%s"%name这里定义了动态路径:/user/<name>。函数有一个参数:name。 转换器flask中,参数类型默认是string,也可以指定其类型1@app.route("/age/<int:age>")2de......
  • FS2110同步整流5V1A频率PWM同步升压IC转换器DC-DC
    描述FS2110是一种高效,固定频率550 KHz,电流模式PWM升压直流/直流转换器,可以操作电池,如输入电压降至2.5V。转换器输出电压可通过外部电阻分压器调节到最大5.25V。此外,转换器还包括一个0.08Ωn通道MOSFET开关和0.12Ωp通道同步整流器。因此,不需要外部肖特基二极管,可以得到更好的效率,......