自己命名项目(c#)

时间:2017-05-29 14:24:43

标签: c# wpf

我想要做的是:我想点击一个按钮,让我命名我的项目。然后该项目被添加到列表视图中。

到目前为止,我可以添加项目的唯一方法是在代码中直接命名。 到目前为止,这是我的代码:

private void button_add(object sender, RoutedEventArgs e)
    {
        ListViewItem item = new ListViewItem();
        item.Content = "randommmmm";
        list1.Items.Add(item);
    }

2 个答案:

答案 0 :(得分:1)

您可以将TextBox绑定到视图模型中的属性。

<TextBox Text="{Binding ItemName}" /> 

private string itemName;
public string ItemName 
{ 
    get { return itemName; } 
    set 
    {
        if (value == null || value == itemName) return;            

        itemName = value;
        NotifyOnPropertyChanged(nameof(ItemName));
    } 
}

因此,您可以使用ItemName创建项目。

item.Content = ItemName;

答案 1 :(得分:1)

这是一个非常基本的例子,可以给你一个想法。

<强> MainWindow.xaml.cs:

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

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        popup.IsOpen = true;
    }

    private void txt_PreviewKeyDown(object sender, KeyEventArgs e)
    {
        if(e.Key == Key.Enter)
        {
            list1.Items.Add(txt.Text);
            txt.Text = string.Empty;
            popup.IsOpen = false;
        }
    }
}

<强> MainWindow.xaml:

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApplication1"
        mc:Ignorable="d"
        Title="Window6" Height="300" Width="300">
    <StackPanel>

        <ListView x:Name="list1" />

        <Popup x:Name="popup" Width="300" PlacementTarget="{Binding ElementName=btn}">
            <Border Background="White" BorderBrush="AliceBlue" BorderThickness="2">
                <TextBox x:Name="txt" Margin="10" PreviewKeyDown="txt_PreviewKeyDown" />
            </Border>
        </Popup>

        <Button x:Name="btn" Content="Add" Click="Button_Click" />

    </StackPanel>
</Window>

点击Button会显示Popup TextBox,当您按[Enter]时,TextBox中的文字会添加到ListView }}。

如果你认真对待WPF和XAML,我真的建议你学习MVVM设计模式,但这是另一个故事:)