9

で現在チェックされているものを取得する正しい方法は何でしょうCheckBoxCheckBox私がこれまでに行ったことは、チェックされた項目でイベントを発生させません:

<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>

どうもありがとう :-)。

4

1 に答える 1

13

チェックされたイベントを使用できます。

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

これらのイベントのコードは次のとおりです。

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

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

編集:チェックボックスのコンテンツが「{Binding posID}」になっていることに気付いたので、(チェックボックスのリストがあるので) できることはチェックされたイベントにあり、次のようなものがあります:

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

これにより「posID」が得られ、必要なことを行うことができます。:D

于 2013-02-18T06:39:02.037 に答える