在我的WPF程序中,我有列表框控制:如何在对话框中显示ListBox项目的数据?
<ListBox x:Name="mailsListBox" SelectionChanged="mailsListBox_SelectionChanged" >
<ListBoxItem Content="..." Background="#FFF3F3F3" Margin="0,0,0,1" />
<ListBoxItem Content="..." Margin="0,0,0,1"/>
<!-- ... -->
<ListBoxItem Content="..." Background="#FFF3F3F3" Margin="0,0,0,1" />
<ListBoxItem Content="..." Margin="0,0,0,1"/>
</ListBox>
当我按下它的分量,我需要出示dialog窗口,但在这里我有什么:
显示相应的值:
public class Emails
{
public Emails()
{
AddMailsToList();
}
public List<string> mailsList = new List<string>();
public void AddMailsToList()
{
MainWindow obj = new MainWindow();
mailsList.Add(obj.mailsListBox.Items[0].ToString());
mailsList.Add(obj.mailsListBox.Items[1].ToString());
//...
mailsList.Add(obj.mailsListBox.Items[9].ToString());
// title of the mail
mailsList.Add("You have new message");
}
}
拦截点击事件到元素列表框:
public partial class MainWindow : MetroWindow
{
private async void mailsListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
Emails obj = new Emails();
await this.ShowMessageAsync(
obj.mailsList[10],
obj.mailsList[mailsListBox.SelectedIndex]);
}
}
如何仅显示对话框中需要的数据?
EDIT1:
我变薄我有一个错误的代码结构,我需要使用ItemsSource
,但我不知道如何..
在你的' AddMailsToList',你为什么要做“MainWindow obj = new MainWindow();” ?因为你创建了一个新窗口,obj.mailsListBox应该是空的,不是吗? – carndacier
@carndacier因为它不在包含'ListBox'的表单的类中。这就是为什么我需要'obj'来从另一个类访问'ListBoxItems' – dima
你能给我更多关于你想要的东西的细节吗? 您希望当您单击列表框中的某个项目时,显示一个对话框,显示所选项目文本? – carndacier