2013-02-18 12 views
5

Jaki będzie właściwy sposób uzyskania aktualnie sprawdzanych elementów w CheckBox. Co mam zrobić do tej pory nie będzie żadnego wypalania zdarzenie na CheckBox sprawdzone pozycje:Wystrzeliwanie zdarzeń, gdy pole wyboru jest zaznaczone dla 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> 

dziękuję :-).

Odpowiedz

4

Można używać sprawdzonych imprez:

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

a kod dla tych zdarzeń jest:

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

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

EDIT: Właśnie zauważyłem masz treść pola wyboru jako „{Binding posID } "więc coś co możesz zrobić (jak masz listę pól wyboru) jest w zaznaczonych zdarzeniach, masz coś takiego:

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

To da ci "posID" i możesz zrobić to, czego potrzebujesz. : D

+0

jest to formant użytkownika, który nie jest dołączony do żadnego modelu widoku. Model widoku zostanie przypisany zgodnie z jego rodzica. Czy istnieje jakiś inny sposób zamiast wyzwalać zdarzenie routowane w samej kontrolce? Dzięki – anevil

+0

Możesz nadal dołączać funkcje obsługi zdarzeń, po prostu zrób to za pomocą kodu, w którym dodajesz pola wyboru. np. tempCheckbox.Checked + = new RoutedEventHandler (myCheckbox_Checked); – Rhexis

+0

Aby wyjaśnić, dodajesz pola wyboru do listy przez inną kontrolkę użytkownika/okno? – Rhexis

Powiązane problemy