如何将ListBox Selected Item重置为其原始状态。 WP7

时间:2012-01-21 22:45:53

标签: c# silverlight windows-phone-7

我有一个带有2个项目的WP7 ListBox,“Line 1”和“Line 2”。当我选择一个项目时,它会将所选项目状态更改为选中状态,文本将为红色。

选择后,我显示一个MessageBox,然后选择OK,并返回仍然选中该项目的ListBox(红色)。

如何将所选项目重置为原始状态?

TIA, 特雷

这是我正在使用的代码。这有点像黑客但有点工作。

 private void listBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        try
        {
            if (listBox1.SelectedItem.ToString() == "Line 1")
            {
                MessageBox.Show("Found");
                ResetListBox();
            }
            else
            {
                MessageBox.Show("Not Found");
                ResetListBox();
            }
        }
        catch { }
    }

    private void ResetListBox()
    {
        listBox1.Items.Clear();
        listBox1.Items.Add("Line 1");
        listBox1.Items.Add("Line 2");
    }

2 个答案:

答案 0 :(得分:0)

存储上一个选定的项目。显示消息框后,在列表框中手动重置所选项目

答案 1 :(得分:0)

如果您正在使用MVVM,则ViewModel可以控制此逻辑,在用户在Messagebox上单击“确定”后清除选择。代码可能类似于

public void Show()
{
     MessageBox.Show();
     SelectedCustomer = _previouslySelectedCustomer;
}

该属性将提升属性更改并将列表的SelectedItem属性绑定到该属性,这样更改将反映在UI中。

如果您没有使用MVVM,那么除了您必须在Codebehind中设置它之外,它看起来会类似。

希望这有帮助

米格尔。