将格式 xxxxxxxxxx 更改为 xxx-xxx-xxxx

Changing format xxxxxxxxxx to xxx-xxx-xxxx

我在 WPF 中有一个文本框,我需要以 xxx-xxx-xxxx 格式显示文本。

<TextBox FontSize="30" Text="{Binding MyString,UpdateSourceTrigger=PropertyChanged}" Grid.Row="3" MaxLength="10"></TextBox>

MyString 只是 属性,它将 TextBox 中的值设置到其中用于其他一些逻辑。我可以使用 StringFormat 在 XAML 本身中完成吗?

是的,你可以做到。请尝试以下操作:

<TextBlock>
    <TextBlock.Text>
      <MultiBinding  StringFormat="{}{0}-whateverhercomes-andwhateverherecomes">
        <Binding Path="MyString"/>
      </MultiBinding>
    </TextBlock.Text>
  </TextBlock>

您可以尝试使用MaskedTextBox指定输入格式。

示例:

<wpfx:MaskedTextBox Mask="000-000-0000" />

也试试 this tutorial

作为一个选项,您可以拆分代码隐藏(或视图模型)中的文本并分别绑定每个值

<TextBlock>
    <TextBlock.Text>
        <MultiBinding StringFormat="{0}-{1}-{2}">
            <Binding Path="FirstPart" />
            <Binding Path="SecondPart" />
            <Binding Path="ThirdPart" />
        </MultiBinding>
    </TextBlock.Text>
</TextBlock>