06.Binding(绑定)03

Posted vigorous

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了06.Binding(绑定)03相关的知识,希望对你有一定的参考价值。

MultiBinding(多路Binding)

当UI中的显示信息是由源Source中的多个数据来决定时,使用MultiBinding。他和Binding的区别是需要传递多个元数据,针对多个数据源需要使用一个转换机制类决定目标的属性。

技术图片

转换器代码:

public class ScanTimeConverter : IMultiValueConverter
{
    public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
    {
        string result = string.Empty;

        if (values == null) return result;
        string strValue = values.ToString();
        if (!string.IsNullOrEmpty(strValue) && !strValue.Equals("NaN") && values.Length == 4)
        {
            try
            {
                ushort RepeatNum = System.Convert.ToUInt16(values[0]);
                ushort FrameNum = System.Convert.ToUInt16(values[1]);
                ushort LineNum = System.Convert.ToUInt16(values[2]);
                ushort Frequency = System.Convert.ToUInt16(values[3]);

                if (Frequency != 0)
                    result = (RepeatNum * FrameNum * LineNum * 1.0 / Frequency).ToString("F2");//单位:ms
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
        return result;
    }

    public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

xaml代码:

<TextBlock Margin="0,0,5,0" Style="{StaticResource TextBlockDefault}">
    <TextBlock.Text>
        <MultiBinding Converter="{StaticResource ScanTimeConverter}">
            <Binding Path="OCTScanParam.RepeatNum" />
            <Binding Path="OCTScanParam.FrameNum" />
            <Binding Path="OCTScanParam.LineNum" />
            <Binding Path="OCTScanParam.Frequency" />
        </MultiBinding>
    </TextBlock.Text>
</TextBlock>

以上是关于06.Binding(绑定)03的主要内容,如果未能解决你的问题,请参考以下文章

有没有更聪明的方法将布局绑定到片段?

实用代码片段将json数据绑定到html元素 (转)

Kotlin Android Studio - setContenView - 绑定(片段)

使用绑定从片段访问父活动的 UI 元素

在约束布局中查看片段的绑定不起作用

如何组合绑定片段而不将它们包装在 XML 文字中