none
GridView 의 DataTemplate 에 있는 버튼을 클릭시 index 가져오기 RRS feed

  • 질문

  • GridView 의 DataTemplate 에 버튼을 구성하고 이 버튼을 클릭시

    이 버튼이  GridView 의 어느 Item 의 버튼인지를 알고 싶은데 어떻게 해야 하나요

    <GridView.ItemTemplate>

    <DataTemplate>

    <Grid>

    <Button Click="button_Click"/>

    void button_Click(object sender, RoutedEventArgs e)

    {

    // 여기서 버튼이 어느 Item 의 버튼 인지를 체크하는 코드를 구현하고 싶습니다

    }

    답변 부탁드립니다. 감사합니다~^^

    2014년 1월 4일 토요일 오전 4:42

답변

  • 그냥 Visual Studio를 열어서 만들 수 있는 기본적인 Grid 앱 샘플 기준으로 말씀 드리자면, Click 이벤트 핸들러의 파라미터인 sender에 이벤트를 발생 시킨 아이템의 정보가 있으므로 sender로부터 정보를 가져올 수 있습니다.

    기본 Grid 앱의 경우 SampleDataItem은 DataModel\SampleDataSource.cs안에 정의되어있으며 각 아이템은 이 클래스가 가지고 있는 속성들에 기반하여 구성됩니다.

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        var item = ((FrameworkElement)sender).DataContext as SampleDataItem;
        string temp = item.UniqueId;
    }

    위와 같이 하면 sender 객체로부터 클릭한 아이템의 ID를 추출할 수 있습니다.

    • 답변으로 표시됨 Jina Lee 2014년 2월 7일 금요일 오전 2:11
    2014년 1월 14일 화요일 오전 8:24