将listview选择的项目内容分配给flowdocument名称

时间:2015-11-10 11:40:59

标签: c# wpf listview

当我将项目添加到listview时:

private void button1_Click(object sender, RoutedEventArgs e)
{
     ListView1.Items.Add(new ListViewItem() { Content = textBox1.Text });            
}

然后我在listview选择更改事件中尝试此操作:

private void ListView1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
        FlowDocument dok = new FlowDocument();
        dok.Name = ListView1.SelectedItem.ToString();
        // or like this
        //dok.Name = ListView1.Selectedvalue.ToString();
}

我收到错误

  

'System.Windows.Controls.ListViewItem:Joe'不是有效值   财产'名称'

添加如下项目:

private void button1_Click(object sender, RoutedEventArgs e)
{
     ListView1.Items.Add(textBox1.Text);
}

解决了这个问题,但我做不到这样的事情:

{
        foreach (ListViewItem item in ListView1.Items)
        {
            if (item.Content.ToString() == textBox1.Text)
            {
                item.Foreground = Brushes.Red;
                item.Background = Brushes.Linen;
                item.FontSize = 16;                   
            }
        }

我想使用第一个选项

ListView1.Items.Add(new ListViewItem() { Content = textBox1.Text });

但我如何将项目内容作为文本分配给文档名称?混乱。

2 个答案:

答案 0 :(得分:0)

我认为你的核心问题是你正在尝试获取ListViewItem中包含的文本,但是你正在调用ToString(),除了你的情况下的'字符串表示'之外你什么都得不到 System.Windows.Controls.ListViewItem: Joe

根据您是否需要与ListViewItem关联的 名称 ,您可以使用不同的方法

方法1

要获取ListViewItem 名称 ,请使用.Name属性,例如:

ListViewItem i = new ListViewItem();
i.Name;

方法2

如果您想在ListViewItem中获取 文字值 ,请使用.Text属性,例如:

ListViewItem i = new ListViewItem();
i.Text;

答案 1 :(得分:0)

解决了问题:

private void ListView1_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
        FlowDocument dok = new FlowDocument();
        foreach (ListViewItem item in ListView1.Items)
            {
                if (item.IsSelected == true)
                dok.Name = item.Content.ToString();
            }

始终必须努力。