1

私は 3 のフォームを持っていTextBoxます。これらのすべてのコントロールには、いくつかのフォルダー パスが含まれています。3 つのテキストボックスすべてと同じイベントを使用したい。テキストボックスをダブルクリックすると、そのテキストボックスのパスをエクスプローラーで開きたいと思います。としてイベントを設定しました。

<TextBox x:Name="TxtSource" 
    TextWrapping="Wrap" 
    Text="{Binding SelectSource}" 
    VerticalAlignment="Bottom" 
    HorizontalContentAlignment="Stretch"
    Height="23" 
    DockPanel.Dock="Bottom">
    <TextBox.InputBindings>
        <MouseBinding Command="{Binding TextBoxMouseDoubleClick}" MouseAction="LeftDoubleClick"></MouseBinding>
    </TextBox.InputBindings>
</TextBox>

ここで、テキストボックスのテキストをパラメーターとして渡したいと思います。したがって、最初のテキストボックスをダブルクリックすると、そのテキストボックスのテキストをパラメーターとして使用する必要があります。いくつかの 2 つのコントロールの同じシナリオ。そして、ここで自己管理テキストを渡す方法がわかりません。ここで私を助けてくれる人はいますか?

これで、テキストボックスごとに 3 つの異なるイベントを作成するソリューションができましたが、それを行う必要はありません。

新しい質問で編集

新しいスレッドを作成する代わりに、この質問を編集することを考えました。上記の問題を解決しました。テキストボックスをダブルクリックすると、パスが新しいウィンドウで開かれます。しかし、テキストボックスのパスを編集すると、古いパスも開かれます。テキストボックスからタブを押すか、別のコントロールをクリックしてからテキストボックスを再度ダブルクリックするまで、新しいパスは処理されません。誰でもこれで私を助けることができますか? XAMLテキストボックスについては、上記の質問に記載されています。

4

3 に答える 3

0

バカ。私はそれを理解することができたでしょう。それが私がやった方法です。

<TextBox x:Name="TxtSource1" 
    TextWrapping="Wrap" 
    Text="{Binding SelectSource1}" 
    VerticalAlignment="Bottom" 
    HorizontalContentAlignment="Stretch"
    Height="23" 
    DockPanel.Dock="Bottom">
    <TextBox.InputBindings>
        <MouseBinding Command="{Binding TextBoxMouseDoubleClick}" CommandParameter="{Binding SelectSource1}" MouseAction="LeftDoubleClick"></MouseBinding>
    </TextBox.InputBindings>
</TextBox>

<TextBox x:Name="TxtSource2" 
    TextWrapping="Wrap" 
    Text="{Binding SelectSource2}" 
    VerticalAlignment="Bottom" 
    HorizontalContentAlignment="Stretch"
    Height="23" 
    DockPanel.Dock="Bottom">
    <TextBox.InputBindings>
        <MouseBinding Command="{Binding TextBoxMouseDoubleClick}" CommandParameter="{Binding SelectSource2}" MouseAction="LeftDoubleClick"></MouseBinding>
    </TextBox.InputBindings>
</TextBox>

<TextBox x:Name="TxtSource3" 
    TextWrapping="Wrap" 
    Text="{Binding SelectSource3}" 
    VerticalAlignment="Bottom" 
    HorizontalContentAlignment="Stretch"
    Height="23" 
    DockPanel.Dock="Bottom">
    <TextBox.InputBindings>
        <MouseBinding Command="{Binding TextBoxMouseDoubleClick}" CommandParameter="{Binding SelectSource3}" MouseAction="LeftDoubleClick"></MouseBinding>
    </TextBox.InputBindings>
</TextBox>

つまり、ViewModel のテキスト ボックスにテキスト プロパティをバインドしました。バインドされたテキスト プロパティをパラメーターとして渡すだけです。答えてくれてありがとう。

于 2013-06-07T10:30:32.387 に答える