私が財産を持っているとしましょう
FIrstName
とLastName
私はそれを単一でバインドする必要がありtextbox
ます。
したがって、1つのテキストボックスでとの両方 FirstName
を表示できますLastName
。
では、どうすればそれが可能になるのでしょうか。
私が財産を持っているとしましょう
FIrstName
とLastName
私はそれを単一でバインドする必要がありtextbox
ます。
したがって、1つのテキストボックスでとの両方 FirstName
を表示できますLastName
。
では、どうすればそれが可能になるのでしょうか。
マルチバインディングを使用してこれを行うことができます
。OnWayバインディングの場合は、次を使用します。
<TextBox>
<TextBox.Text>
<MultiBinding StringFormat="{}{0} {1}" Mode="OneWay">
<Binding Path="FirstName"/>
<Binding Path="LastName"/>
</MultiBinding>
</TextBox.Text>
</TextBox>
MutiBindingクラスの詳細については、こちらをご覧ください
FullName
おそらく、3番目のプロパティ。
より良い助けが必要な場合は、より良い質問をしてください(たとえば、あなたのタイプは何ですか)。
編集:とにかく、上記のように「マルチパート名」を安全に処理できるように、少なくとも2つのテキストボックスを用意することをお勧めしますKarl Heinz Schmidt-Meyer von Neuenhausen zu Bad-Reichenhall
。あいまいさが少なくなることは別として、これはWebフォームの事実上の標準です。
edit2:Navid Rahmaniの回答についてのメモとして、データベースが非常に深刻に破損する可能性があるため、システム管理者、プログラマー、アプリケーションが失敗する理由の手がかりがないプログラマー、および大量のお金。つまり、クライアントがすでにクライアントを失う前に、この不気味な破損が発見された場合です。
問題のコード
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
string[] strings = ((string)value).Split(' ');
return strings;
}
私の質問は、マルチパート名をどのように処理するかということでした。彼は、「、」を使用できると答えました。私の返事:
名前コンポーネントが2つ未満の場合は処理されないため、コードはこれを処理しません(を取得します
IndexOutOfRangeException
)。さらに、コードは複数の空白や忘れられた空白を処理しません。追加の空白ごとに、個別の値トークンが生成され、データが消えてデータベースエントリが台無しになる可能性があります(最初の2つのエントリのみを読み取るため)。さらに、ユーザーがコンマを忘れていないか、セミコロンやスラッシュなどの入力ミスがないかを検証する必要があります。これらの問題はすべて、別個のフィールドに分離することで存在しなくなります。ユーザー入力は、セキュリティとプログラムの安定性の最大の恐怖です。
MultiBindingクラスを試してください:
<TextBlock>
<TextBlock.Text>
<MultiBinding Converter="{StaticResource myConverter}">
<Binding Path="FirstName" />
<Binding Path="LastName" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
<TextBlock Name="textBox">
<TextBlock.Text>
<MultiBinding>
<Binding Path="FirstName"/>
<Binding Path="LastName"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
このような何かがあなたを近づけるはずです。これはVSで書かれていないので、構文的に正しいかどうかはわかりません。