gpt4 book ai didi

c# - 以编程方式如何在 MultiBinding StringFormat 中提供连续的任意数量的空白字符?

转载 作者:太空宇宙 更新时间:2023-11-03 14:56:12 25 4
gpt4 key购买 nike

请检查以下代码片段:

<TextBox x:Name="TxtBox_CommandInfo"  Style="{DynamicResource MetroTextBox}" IsReadOnly="True" Controls:TextBoxHelper.Watermark="This is a textbox" HorizontalAlignment="Left" Margin="0,236,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Height="154" Width="780" ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Auto">
<TextBox.Text>
<MultiBinding StringFormat="{}{0} {1} {2} {3}&#x20;{4} {5} {6} {7} {8} {9} {10}&#x0a;{11}">
<Binding Path="No" />
<Binding Path="SelectedType" />
<Binding Path="IgnoreSignature"/>
<Binding Path="IgnoreRelString"/>
<Binding Path="DirectDL"/>
<Binding Path="LegacySC" />
<Binding Path="SelectedDVName"/>
<Binding Path="SelectedHCName"/>
<Binding Path="SelectedSCName"/>
<Binding Path="SCRelease"/>
<Binding Path="DALName"/>
<Binding Path="PreviousLogs"/>
</MultiBinding>
</TextBox.Text>
</TextBox>

每当我想格式化绑定(bind)参数之间的空格时,我都必须对连续空白字符的数量进行硬编码。

  • 使用 &#x20; (空白代码),我们能否以编程/方便方式(使用棘手的代码)而不是硬编码(键入)重复字符(我们想要的连续空白的数量)来格式化字符串.

我的假设是:

<MultiBinding StringFormat="{}{0}[&#x20;,4]{1}[&#x20;,8]{2}{3}{4}[&#x20;,6]{5}{6}[&#x20;,10]{7}{8}{9}{10}&#x0a;{11}"

  • 因此,WPF/XAML MultiBinding StringFormat 下是否有任何有效机制来规定,对于给定字符或字符集“应生成多少个连续字符或多少个重复字符?”

意味着而不是像这样输入所需的空格:

<MultiBinding StringFormat="{}{0} {1} {2}" />

替代/程序化/方便但假定的机制(提供我们想要的空白数量)如下:

<MultiBinding StringFormat="{}{0}[Character/s,Number of Repetition]{1}[Character/s,Number of Repetition]{2}" />
<!-- Assumed code like -->
<MultiBinding StringFormat="{}{0}[&#x20,8]{1}[&#x20,10]{2}" />

谢谢!

最佳答案

您可以添加一个空格参数并填充它:

<MultiBinding StringFormat="{}{0}{12,5}{1}{12,5}{2}{12,1}{3}{12,1}{4}{12,1}{5}{12,4}{6}{12,8}{7}{12,8}{8}{12,8}{9}{12,4}{10}&#x0a;{11}">
<Binding Path="No" />
<Binding Path="SelectedType" />
<Binding Path="IgnoreSignature"/>
<Binding Path="IgnoreRelString"/>
<Binding Path="DirectDL"/>
<Binding Path="LegacySC" />
<Binding Path="SelectedDVName"/>
<Binding Path="SelectedHCName"/>
<Binding Path="SelectedSCName"/>
<Binding Path="SCRelease"/>
<Binding Path="DALName"/>
<Binding Path="PreviousLogs"/>
<Binding Path="SomeBindingPathThatDoesNotExist" FallbackValue=" "/>
</MultiBinding>

{12} 将是您的值(后备值是一个空格),您可以用 {12,x}

填充它

更好的解决方案是填充每个绑定(bind)。这为每个绑定(bind)提供了固定大小(不添加固定数量的空格),但这通常是您想要的:

<MultiBinding StringFormat="{}{0,10}{1,10}{2,8}(etc.)">
<Binding Path="No" />
<Binding Path="SelectedType" />
<Binding Path="IgnoreSignature"/>
<Binding Path="IgnoreRelString"/>
<Binding Path="DirectDL"/>
<Binding Path="LegacySC" />
<Binding Path="SelectedDVName"/>
<Binding Path="SelectedHCName"/>
<Binding Path="SelectedSCName"/>
<Binding Path="SCRelease"/>
<Binding Path="DALName"/>
<Binding Path="PreviousLogs"/>
</MultiBinding>

关于c# - 以编程方式如何在 MultiBinding StringFormat 中提供连续的任意数量的空白字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48921506/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com