2009-06-19 28 views
8

MVVM desenini kullanıyorum ve üst pencerede bir metin kutum var ve TextCode'da görünecek olan açılır pencereye bir metin göndermek istiyorum.WPF KomutParametresi Metin Kutusunda

Komut parametresini kullanmayı denedim, ancak benim için çalışmıyor.

yardım edin ..

Teşekkür Sharath

cevap

1

Ne denediniz mi? Bu kod benim için çalışıyor:

<Window x:Class="WpfApplication1.Window1" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="Window1" Height="300" Width="300"> 
    <Window.CommandBindings> 
     <CommandBinding Command="Cut" Executed="CommandBinding_Executed" /> 
    </Window.CommandBindings> 
    <StackPanel> 
     <TextBox x:Name="textBox1" /> 
     <Button Command="Cut" 
       CommandParameter="{Binding Text,ElementName=textBox1}" 
       Content="Cut" /> 
    </StackPanel> 
</Window> 

Bu olay işleyicisi olarak:

private void CommandBinding_Executed(object sender, ExecutedRoutedEventArgs e) 
{ 
    MessageBox.Show(e.Parameter.ToString()); 
} 
+0

. Düğme yapmak istemiyorum. –

+0

Eğer bir Komut kullanıyorsanız, bir Düğme gibi bir ICommandSource kullanmalısınız. Komutlar olay işleyicileri ile aynı değildir. –

22

i bu kullanmak ister, kullanıcı presler girerseniz komut yürütülecek istiyorum. Eğer düğme görünür olmasını istemiyorsanız tabii çökmüş olan görünürlüğünü ayarlayabilirsiniz,

<TextBox x:Name="inputBox"/> 
<Button Command="{Binding CutCommand}" 
     CommandParameter="{Binding Text, ElementName=inputBox}" 
     Content="Cut" 
     IsDefault="{Binding IsFocused, ElementName=inputBox}" /> 

:-) Bağlama isDefault akıllı kullanımına dikkat edin. Enter'a basarsanız yine de komutu yürüteceğini düşünüyorum.

+0

Çok teşekkürler ... Düğme çöktüğünde yürütmez. Genişliği 0 olarak ayarlıyorum :-) –

+0

Liste kutusu için de aynısını yapabilir miyim? Listbox öğeleri üzerine çift tıkladığımda. Düğme tıklaması bile yükseltilmelidir. –

+0

Bilmiyorum. Komutu bunun için kod arkasında elle çağırdım. Yine de xaml için yeni biriyim, kim bilir. – Botz3000

2

Bu kod çalışır için ben metin kutusu TextChanged veya kullanıcı tıkladığında klavyeden metin üzerinde girdiğinizde kullanmak istediğiniz bana

<UserControl x:Class="Test" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
      mc:Ignorable="d" 
      Height="Auto" Width="Auto"> 
    <UserControl.InputBindings> 
    <KeyBinding Key="Enter" Command="{Binding ScanCommand}" CommandParameter="{Binding Text, ElementName=tbBarcode}"/> 
    </UserControl.InputBindings> 
    <Grid Name="LayoutRoot"> 
    <TextBox x:Name="tbBarcode" Height="23"/> 
    </Grid> 
</UserControl> 
İlgili konular