我想要做的是:我想点击一个按钮,让我命名我的项目。然后该项目被添加到列表视图中。
到目前为止,我可以添加项目的唯一方法是在代码中直接命名。 到目前为止,这是我的代码:
private void button_add(object sender, RoutedEventArgs e)
{
ListViewItem item = new ListViewItem();
item.Content = "randommmmm";
list1.Items.Add(item);
}
答案 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设计模式,但这是另一个故事:)