[英]How do i update a specific column in a specific row in Listview (wpf) programmatically
我有一個listview表, 請參閱鏈接中的圖片
我想做的是以編程方式更改y行中的x列。 我正在使用wpf和具有以下xaml代碼的listview。
`<ListView x:Name="listView1" Height="153" Width="444">
<ListView.View>
<GridView>
<GridViewColumn Header ="Code" Width="148"></GridViewColumn>
<GridViewColumn Header ="Name" Width="148"></GridViewColumn>
<GridViewColumn Header ="Country" Width="148"></GridViewColumn>
</GridView>
</ListView.View>
</ListView>
`我想做的是以編程方式更改y行中的x列。 像這樣的listview.Items [x] .ColumnIndex [y] =“我的值”; 我需要傳遞一個字符串值,並且我不在那里使用數據綁定。
圖片和您的XAML標記不太匹配。 我強烈建議您在此處閱讀有關ListViews如何工作的解釋: http : //www.wpf-tutorial.com/listview-control/simple-listview/
更改ListView中顯示的內容時,將修改ItemsSource及其內容,而不是可視的“單元格”。 最好通過數據綁定來完成。
假設您的ListView是這樣設置的:
XAML:
<ListView x:Name="myListView">
<ListView.View>
<GridView>
<GridViewColumn DisplayMemberBinding="{Binding Code}" Header="Code"/>
<GridViewColumn DisplayMemberBinding="{Binding Name}" Header="Name"/>
<GridViewColumn DisplayMemberBinding="{Binding Country}" Header="Country"/>
</GridView>
</ListView.View>
</ListView>
C#:
public class MyInfo
{
public string Code { get; set; }
public string Name { get; set; }
public string Country { get; set; }
}
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
...
ObservableCollection<MyInfo> items = new ObservableCollection<MyInfo>();
items.Add(new MyInfo() { Code = "mycode1", Name = "myname1", Country = "mycountry1" });
items.Add(new MyInfo() { Code = "mycode2", Name = "myname2", Country = "mycountry2" });
items.Add(new MyInfo() { Code = "mycode3", Name = "myname3", Country = "mycountry3" });
myListView.ItemsSource = items;
}
}
要更改第二列中的“名稱”值,可以使用:
items[1].Name = "mynewname2";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.