请检查以下代码段:
<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} {4} {5} {6} {7} {8} {9} {10}
{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>
每当我想格式化绑定参数之间的空格时,我就不得不对连续的空白字符数进行硬编码。
 
(空白代码),我们可以用编程方便/方便方式(使用棘手的代码)格式化字符串,而不是硬编码(输入)重复字符(我们想要的连续空格数。)。我的假设如下:
<MultiBinding StringFormat="{}{0}[ ,4]{1}[ ,8]{2}{3}{4}[ ,6]{5}{6}[ ,10]{7}{8}{9}{10}
{11}"
手段而不是像这样输入所需的空格:
<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}[ ,8]{1}[ ,10]{2}" />
谢谢!
答案 0 :(得分:0)
你可以添加一个空格参数并填充它:
<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}
{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}
更好的解决方案是填充每个绑定。这为每个绑定提供了一个固定的大小(不添加恒定数量的空格),但它通常是你想要的:
<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>