如何根据条件将C#WPF TextBox绑定到不同的属性?

The*_*fen 2 c# wpf binding

如何根据用户选择告诉我的TextBox绑定到不同的属性.我的情况是:

客户具有以下属性:

  1. 邮寄地址和
  2. 收件地址.

编辑或创建这些时,有一个单选按钮,用于选择要编辑的地址.因此,当我单击"邮件地址"单选按钮时,我想将TextBox绑定到属性" MailAddress",但是当单击"运送地址"时,我想将绑定更改为" ShipAddress"属性.

我知道我可以在Address单击单选按钮时设置一个属性" ",但我想直接绑定到Customer.MailAddressCustomer.ShipAddress用于验证目的(邮件地址是必需的,但船舶地址不是).

She*_*dan 6

首先,我想说我自己不会这样做,但是直接回答你的问题,你可以这样做:

<TextBox Name="YourTextBox">
    <TextBox.Style>
        <Style>
            <Setter Property="TextBox.Text" Value="{Binding MailAddress}" />
            <Style.Triggers>
                <DataTrigger Binding="{Binding IsChecked, ElementName=TheRadioButton}" 
                    Value="True">
                    <Setter Property="TextBox.Text" Value="{Binding ShipAddress}" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </TextBox.Style>
</TextBox>
Run Code Online (Sandbox Code Playgroud)

我个人只是把这些控件扔进一个UserControl我可以绑定的控件,或者甚至加倍我的控件,硬编码我Binding的所有s然后使用Checkbox.IsChecked属性值来切换Visibility它们.它可能会产生更多代码,但它会更清晰,更容易调试.无论哪种方式,都取决于你.