0

这是我第一次用 C# 编写代码并在 VS2010 中构建应用程序。

我的任务是构建一个有两个窗口的应用程序。首先ListBox与几个项目。第二个MouseDoubleClick在任何项目上打开。此时,第二个窗口打开,其标题应与 ListBoxItem Name 相同

我已经寻找一种方法来做到这一点。但是没有运气。

此时我在代码中有这个:

...

namespace WpfApplication20
{

    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void MenuItem_Click(object sender, RoutedEventArgs e)
        {
            var newWindow = new Window1();
            newWindow.Show();
        }

        private void seznamSporocil_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            var newWindow = new Window1();
            newWindow.Show();
        } 
    }
}

最后,这应该是一个电子邮件应用程序,如 Outlook 或类似的。

谢谢大家的帮助!

4

2 回答 2

0

尝试以下操作:

var newWindow = new Window1();
newWindow.Title = listBox.SelectedItem.toString();
newWindow.Show();

关联:

http://msdn.microsoft.com/en-us/library/system.windows.controls.window.title.aspx

希望它有帮助。

于 2013-05-30T09:54:54.330 回答
0

虽然自由职业者的回答有些正确,但他的解决方案假定事件曾经并且将始终由那个特定的 ListBox 触发。您确实应该使用 sender 参数来获取对触发事件的列表框的引用,如下所示:

    private void seznamSporocil_MouseDoubleClick(object sender, MouseButtonEventArgs e)
    {
        var listBox = sender as ListBox;
        var item = listBox.SelectedItem as ListBoxItem;

        var newWindow = new Window1();
        newWindow.Title = item.Content.ToString();
        newWindow.Show();
    }

一些错误检查也不会受到伤害,即验证发件人对象是否真的是 ListBox-Type 等。

于 2013-05-30T10:06:13.647 回答