Windows phone 7 选择更改事件也称为Lostfocus事件?
净C#, 在我的windows phone 7.5应用程序中,如果选择了任何项目,我希望使应用程序栏可见。。因此,我将使其在选定的更改事件中可见。但在我的代码中发生的是,当选择发生更改时,它也会触发LostFocus事件,在该事件中,我将使selected index=0。 现在代码的结果是,每当我选择任何项目时,应用程序栏都会变为可见,然后自动变为不可见(因为失去焦点事件)。 下面是一段代码Windows phone 7 选择更改事件也称为Lostfocus事件?,windows-phone-7,c#-4.0,listbox,Windows Phone 7,C# 4.0,Listbox,净C#, 在我的windows phone 7.5应用程序中,如果选择了任何项目,我希望使应用程序栏可见。。因此,我将使其在选定的更改事件中可见。但在我的代码中发生的是,当选择发生更改时,它也会触发LostFocus事件,在该事件中,我将使selected index=0。 现在代码的结果是,每当我选择任何项目时,应用程序栏都会变为可见,然后自动变为不可见(因为失去焦点事件)。 下面是一段代码 private void ShopingListItemDetails_SelectionChang
private void ShopingListItemDetails_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (ShopingListItemDetails.SelectedIndex != -1)
{
ApplicationBar.IsVisible = true;
int selind = ShopingListItemDetails.SelectedIndex;
}
}
private void ShopingListItemDetails_LostFocus(object sender, RoutedEventArgs e)
{
ApplicationBar.IsVisible = false;
ShopingListItemDetails.SelectedIndex = -1;
}
我刚开始使用.NETC#(XAML),所以假设选择更改事件也触发了LostFocus事件
请帮帮我到底是什么问题,谢谢
Zauk您可以使用以下黑客。初始化一个变量,比如在xaml.cs中最初将selectChanged设置为False。在SelectionChanged函数中,将其更改为True。现在,在LostFocus函数中,仅当selectChanged变量为false时才进行处理,如果为true,则将其设置回false
Boolean selectChanged=false;
private void ShopingListItemDetails_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (ShopingListItemDetails.SelectedIndex != -1)
{
ApplicationBar.IsVisible = true;
int selind = ShopingListItemDetails.SelectedIndex;
selectChanged=true;
}
}
private void ShopingListItemDetails_LostFocus(object sender, RoutedEventArgs e)
{
if(!selectChanged)
{
ApplicationBar.IsVisible = false;
ShopingListItemDetails.SelectedIndex = -1;
}
selectChanged=false;
}
我认为这应该可以解决您的问题。您可以使用以下方法。初始化一个变量,比如在xaml.cs中最初将selectChanged设置为False。在SelectionChanged函数中,将其更改为True。现在,在LostFocus函数中,仅当selectChanged变量为false时才进行处理,如果为true,则将其设置回false
Boolean selectChanged=false;
private void ShopingListItemDetails_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (ShopingListItemDetails.SelectedIndex != -1)
{
ApplicationBar.IsVisible = true;
int selind = ShopingListItemDetails.SelectedIndex;
selectChanged=true;
}
}
private void ShopingListItemDetails_LostFocus(object sender, RoutedEventArgs e)
{
if(!selectChanged)
{
ApplicationBar.IsVisible = false;
ShopingListItemDetails.SelectedIndex = -1;
}
selectChanged=false;
}
我认为这应该可以解决您的问题。尝试使用OnHold事件而不是SelectionChanged事件,并使用上下文菜单而不是Appbar。这可能会有所帮助。请尝试使用OnHold事件而不是SelectionChanged事件,并使用关联菜单而不是Appbar。这可能会有帮助。