私のアプリケーションでは、オブジェクトのいくつかの構成を表すUsercontrolがあります。この内部には、前記オブジェクトの名前を含むTexblockがあります。このTextblockをクリックしてテキストボックスにして、名前を編集できるようにしたかったのです。テキストボックスをクリックしたときにテキストボックスのバインドを更新する方法
は、私はそれが
- はそれが
- 見えるようになったときに
- ゲインキーボードフォーカスを押下するViewModelにに値を設定し、次の3つの行動をしたいのViewModelに値を設定するときマウスは、テキストボックスの外でクリックされた(コンボボックスがないように)
と3 はどのように私は私のテキストボックスがREQを満たすために得ることができる上、私は現在、立ち往生していますuirement 3 - テキストボックスをクリックすると値が設定される他の2つの動作を動作させるためにいくつかの動作を実装しましたが、マウスを動作させることはできません。
私は、次の
- 追加PreviewMouseDownイベントを試してみました - これは場合にも打撃を受けるように思われる - これが唯一のマウスダウンがテキストボックスにもユーザーコントロールで
- 追加PreviewMouseDownのときに検出され得るように思われますテキストボックスがクリックされます。また、それは私のウィンドウ内の唯一のusercontrolではないので、それはより大きなスケールでは動作しません。
- PreviewMouseDownOutsideCapturedElementを追加しましたが、これを決して発射することはできません。
- UpdateSourceTriggerとイベントの両方に焦点を紛失 - これは動作しますが、あなたではなく、単に次のように私のテキストボックスのコードがある
をオフクリックするよりも、別の入力フィールドをクリックしたときのみ。
<TextBox x:Name="text" VerticalAlignment="Center"
Margin="5,2,0,0"
Text="{Binding Name, Mode=TwoWay}"
Visibility="{Binding IsEditingName, Converter={StaticResource VisConverter}, FallbackValue=Collapsed}"
b:FocusBehaviours.ShouldFocusWhenVisible="True"
b:InputBehaviours.UpdatePropertySourceWhenEnterPressed="TextBox.Text"/>
私は数え切れないほどのSOの記事を見てきましたし、それらのどれもこれで私を助けることができるように思わない、それらはすべて私が行うことができないウィンドウ/ユーザーコントロールに追加することをお勧めします。
'UpdateSourceTrigger'を' LostFocus'に設定するのはどうですか? – Pikoh
@Pikohこれは、単にクリックするのではなく、別のテキストボックスまたはコンボボックスをクリックしたときにのみ機能します。 LostFocusがBindingとEventの両方で意味することは、私がそれを書いていたときの正確な名前を思い出すことができなかったので、もっと明確に編集します。ありがとう – Keithin8a
あなたは、別のコントロールだけでなく、あなたのユーザーコントロールのどこかをクリックすると、そうですか?あなたのユーザーコントロールをフォーカス可能にしてみませんか?私はそれがより簡単な方法だと思う... – Pikoh