Click on the button in the phone LongListSelector Windows 8

I have a LonglistSelector that displays a list of items, each item has a button:

My LongListSelector has a SelectionChanged event

private void MyLLS_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        var item = (MyItemType)MyLLS.SelectedItem;
        // Job 1 goes here
    }

      

and every button on an element in LLS has a click event:

private void btDownload_Click(object sender, RoutedEventArgs e)
    {
        var button = (MyItemType)(sender as Button).DataContext;          
        // Job 2 goes here
    }

      

The problem is that when I click the button, it processes job 2 and after that it processes job 1. So how can I just do job2 of the button event?

+3


source to share


1 answer


You have to use a boolean flag to define it, for example:



bool isBtnClicked = false;

private void MyLLS_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    // check if button is clicked, if so, return and reset the isBtnClicked flag.
    if (isBtnClicked)
    {
        isBtnClicked = false;
        return;
    }
    var item = (MyItemType)MyLLS.SelectedItem;
    // Job 1 goes here
}

private void btDownload_Click(object sender, RoutedEventArgs e)
{
    var button = (MyItemType)(sender as Button).DataContext; 
    // set it true when button clicked
    isBtnClicked = true;         
    // Job 2 goes here
}

      

+1


source







All Articles