WPF

2013-02-18 7 views
5

için onay kutusu işaretlendiğinde bir olay tetikleniyor CheckBox'da şu anda kontrol edilenleri almak için doğru yol ne olacak. çok :-)WPF

<ListBox Grid.RowSpan="3" Grid.Column="2" Grid.ColumnSpan="5" Margin="2" ItemsSource="{Binding MachinePositionList}"> 
    <ListBox.ItemTemplate> 
     <HierarchicalDataTemplate> 
      <CheckBox Content="{Binding posID}" IsChecked="{Binding IsChecked, Mode=TwoWay}"> 
       <i:Interaction.Triggers> 
        <i:EventTrigger EventName="Checked"> 
         <i:InvokeCommandAction Command="{Binding CurrentCheckedPosition}" /> 
        </i:EventTrigger> 
       </i:Interaction.Triggers>       
      </CheckBox> 
     </HierarchicalDataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

Teşekkür: ben şimdiye kadar kontrol CheckBox öğeler üzerinde herhangi bir olay ateş olmaz yapmış ne.

cevap

4

Sen işaretli etkinlikleri kullanabilirsiniz : Bu olaylar için

<CheckBox Name="myCheckBox" 
      Content="I am a checkbox!" 
      Checked="myCheckBox_Checked" 
      Unchecked="myCheckBox_Unchecked" /> 

Ve kodudur:

private void myCheckBox_Checked(object sender, RoutedEventArgs e) 
{ 
    // ... 
} 

private void myCheckBox_Unchecked(object sender, RoutedEventArgs e) 
{ 
    // ... 
} 

DÜZENLEME: siz "olarak işaret kutusu içeriğe sahip Hemen fark {Binding posID } "yapabileceğiniz bir şey (onay kutularının bir listesi gibi) kontrol edilen etkinliklerde olduğu gibi bir şey var:

if (sender != null) 
{ 
    int posID = Convert.ToInt32(((CheckBox)sender).Name); 
} 

Bu size "pozID" değerini verir ve ihtiyacınız olan şeyi de yapabilirsiniz. : D

+0

bu, herhangi bir görünüm modeline eklenmeyen bir kullanıcı denetimidir. Görünüm modeli, ana öğesine göre atanacaktır. Kontrolün yönlendirilmiş bir olayı tetiklemek yerine başka bir yolu var mı? Teşekkürler – anevil

+0

Hala olay işleyicilerini ekleyebilir, yalnızca onay kutularını eklediğiniz kodu kullanarak yapabilirsiniz. ör. tempCheckbox.Checked + = yeni RoutedEventHandler (myCheckbox_Checked); – Rhexis

+0

Netleştirmek gerekirse, onay kutularını liste görünümüne başka bir usercontrol/window üzerinden mi ekliyorsunuz? – Rhexis