1

現在、ViewModelにバインドしてオブジェクトのコレクションを表示するItemsControlテンプレートを使用しています。テンプレートの一部としてToggleButtonがあります。コードビハインドのコレクション内のそのUIアイテムにバインドされているオブジェクトにアクセスしたいと思います。

これが私が配置しているコードです:

<ItemsControl.ItemTemplate>
   <DataTemplate>
      <StackPanel HorizontalAlignment="Stretch" Orientation="Horizontal">
           <ToggleButton Cursor="Hand"
                         IsChecked="{Binding IsActive, Mode=TwoWay}"
                         IsEnabled="{Binding CanToggleOnProfile}"
                         Style="{StaticResource ProfileToggleButtonStyle}" 
                         PreviewMouseLeftButtonUp="OnProfileToggle">

呼び出しの背後にあるコードOnProfileToggleで、DataTemplateの特定のオブジェクトにアクセスし、それを使って何かをしたいのですが、アクセス方法(コレクション内のインデックスなど)がわかりません。 )。

4

1 に答える 1

3

DataContextあなたは送信者のであなたの特定のオブジェクトを見つけるでしょう:

private void OnProfileToggle(object sender, MouseButtonEventArgs e)
{
    ToggleButton button = sender as ToggleButton;
    object yourItem = button.DataContext;
}

もちろん、yourItemをアイテムクラスにキャストする必要があります。

于 2012-12-17T19:40:52.133 に答える