wpf listViewにはbuttonが含まれており、選択した行を編集するために使用されます.
<Window x:Class="WpfApp2.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:WpfApp2"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
<StackPanel>
<Button x:Name="loadBtn" Content=" " Click="LoadBtn_Click" Margin="20" Width="200"/>
<Border BorderBrush="Orange" BorderThickness="5" CornerRadius="6" Padding="4">
<ListView x:Name="list" ItemsSource="{Binding ShowList}" Height="333" Margin="0.2,0,-0.2,0">
<ListView.View>
<GridView>
<GridViewColumn Header="ID" Width="50" DisplayMemberBinding="{Binding Id}"/>
<GridViewColumn Header="QrStart" Width="100" DisplayMemberBinding="{Binding QrStart}" />
<GridViewColumn Header="QR" Width="100" DisplayMemberBinding="{Binding Qr}"/>
<GridViewColumn Header="STATE" Width="100" DisplayMemberBinding="{Binding Res}" />
<GridViewColumn Header="Time" Width="100" DisplayMemberBinding="{Binding Span}" />
<GridViewColumn Header=" " Width="100" >
<GridViewColumn.CellTemplate>
<DataTemplate>
<Button Content=" " x:Name="deleteBtn" Click="DeleteBtn_Click"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
</Border>
</StackPanel>
</Grid>
</Window>
バックグラウンドコード
using System.Windows; using System.Windows.Controls; namespace WpfApp2 { ///
/// Interaction logic for MainWindow.xaml /// public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); /// this.list.ItemsSource = _bindingClass.ShowList; } private viewmodel.BindingClass _bindingClass = new viewmodel.BindingClass(); private void DeleteBtn_Click(object sender, RoutedEventArgs e) { // var btn = sender as Button; var c = btn.DataContext as viewmodel.CShowTag; int index = int.Parse(c.Id); this.list.Items.GetItemAt(index); MessageBoxResult boxResult = MessageBox.Show($" :id={c.Id},Qr={c.Qr} ?"," ", MessageBoxButton.YesNo,MessageBoxImage.Question); if (boxResult == MessageBoxResult.Yes) { _bindingClass.ShowList.Remove(c); this.list.Items.Refresh(); } return; } ///
/// /// /// /// private void LoadBtn_Click(object sender, RoutedEventArgs e) { _bindingClass.LoadData(); } } }
类文件
/*************************************************************************************
* CLR : 4.0.30319.42000
* : BindingClass
* : 8/31/2020 10:34:33 AM
* : zhx
* :
*************************************************************************************/
using System.Collections.ObjectModel;
namespace WpfApp2.viewmodel
{
public class BindingClass
{
public BindingClass()
{
ShowList = new ObservableCollection<CShowTag>();
}
public ObservableCollection<CShowTag> ShowList
{
set;
get;
}
public void LoadData()
{
for (int i = 0; i < 10; i++)
{
CShowTag tag = new CShowTag()
{
Id=(i+1).ToString(),
Qr="33333",
QrStart="1111",
Res="0",
Span="33"
};
ShowList.Insert(0,tag);
}
}
}
}
/*************************************************************************************
* CLR : 4.0.30319.42000
* : CShowTag
* : 8/31/2020 10:29:08 AM
* : zhx
* :
*************************************************************************************/
namespace WpfApp2.viewmodel
{
public class CShowTag
{
public string Id
{
get => id;
set => id = value;
}
private string id;
private string qr;
private string res;
public string QrStart
{
get; set;
}
public string Qr
{
get => qr;
set => qr = value;
}
public string Res
{
get => res;
set => res = value;
}
public string Span
{
get => span;
set => span = value;
}
private string span;
}
}