Làm thế nào để bạn có được nội dung của một ô đơn lẻ của bộ công cụ WPF DataGrid trong C#?WPF DataGrid: Làm thế nào để bạn có được nội dung của một ô?
Theo nội dung tôi ngụ ý một số văn bản thuần túy có thể ở trong đó.
Làm thế nào để bạn có được nội dung của một ô đơn lẻ của bộ công cụ WPF DataGrid trong C#?WPF DataGrid: Làm thế nào để bạn có được nội dung của một ô?
Theo nội dung tôi ngụ ý một số văn bản thuần túy có thể ở trong đó.
Theo những gì Phillip đã nói - số DataGrid
thường bị ràng buộc dữ liệu. Dưới đây là ví dụ trong đó WPF DataGrid
của chúng tôi được gắn với một số ObservableCollection<PersonName>
trong đó PersonName
bao gồm một số FirstName
và LastName
(cả hai chuỗi).
DataGrid
hỗ trợ tạo cột tự động để ví dụ này khá đơn giản. Bạn sẽ thấy rằng tôi có thể truy cập các hàng theo chỉ mục của chúng và nhận giá trị của một ô trong hàng đó bằng cách sử dụng tên thuộc tính tương ứng với tên cột.
namespace WpfApplication1
{
/// <summary>
/// Interaction logic for Window1.xaml
/// </summary>
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
// Create a new collection of 4 names.
NameList n = new NameList();
// Bind the grid to the list of names.
dataGrid1.ItemsSource = n;
// Get the first person by its row index.
PersonName firstPerson = (PersonName) dataGrid1.Items.GetItemAt(0);
// Access the columns using property names.
Debug.WriteLine(firstPerson.FirstName);
}
}
public class NameList : ObservableCollection<PersonName>
{
public NameList() : base()
{
Add(new PersonName("Willa", "Cather"));
Add(new PersonName("Isak", "Dinesen"));
Add(new PersonName("Victor", "Hugo"));
Add(new PersonName("Jules", "Verne"));
}
}
public class PersonName
{
private string firstName;
private string lastName;
public PersonName(string first, string last)
{
this.firstName = first;
this.lastName = last;
}
public string FirstName
{
get { return firstName; }
set { firstName = value; }
}
public string LastName
{
get { return lastName; }
set { lastName = value; }
}
}
}
Cảm ơn bạn! Tôi biết đã có một số cách ... Một chút phức tạp hơn sau đó một DataGridView từ hình thức nhưng WPF không phải là trưởng thành như hình thức. – Partial
Không sao cả. Tôi nghĩ rằng Xceed (bên thứ ba) DataGrid sử dụng cấu trúc DataGridView. –
'chuỗi công khai FirstName {get; bộ; } chuỗi công khai LastName {get; bộ; } ' Chuyển đổi sang thuộc tính tự động: D – TheGeekZn
Thông thường, nội dung của ô DataGrid bị ràng buộc dữ liệu và do đó phản ánh trạng thái của thuộc tính (trong hầu hết các trường hợp) của đối tượng đang được hiển thị trong một hàng nhất định. Do đó, có thể dễ dàng truy cập vào mô hình hơn là chế độ xem.
Có nói rằng (mô hình truy cập không xem) câu hỏi của tôi là: bạn đang cố gắng làm gì? Bạn đang tìm kiếm các cách để duyệt qua cây trực quan để tìm điều khiển (hoặc điều khiển) được hiển thị trên màn hình? Làm thế nào để bạn mong đợi để tham khảo các tế bào, theo chỉ số hàng và cột?
Ví dụ, với một hình thức DataGridView bạn có thể làm một cái gì đó như thế này: string cellContent = dataGridView1.Rows [0] .Cells [1] .ToString(); – Partial
Làm thế nào bạn có thể làm một cái gì đó tương tự với một DataGrid WPF? – Partial
Và có, tôi muốn có thể lấy ô theo chỉ mục hàng và cột. – Partial
Nếu bạn liên kết bằng cách sử dụng DataTable, bạn có thể lấy DataRowView từ thuộc tính Mục của hàng.
DataRowView rowView = e.Row.Item as DataRowView;
Tôi biết điều này nghe có vẻ đơn giản đối với một số người, nhưng tôi mới sử dụng WPF và đã cố gắng thực hiện điều gì đó như trong Biểu mẫu với DataGridView và không làm được gì tương tự. Vì vậy, một giải pháp chi tiết sẽ được thực sự đánh giá cao! – Partial
Có lẽ nó không đơn giản sau khi tất cả ... – Partial
Tôi nghĩ rằng tôi sẽ chỉ sử dụng một DataGridView từ các hình thức với sự giúp đỡ của WindowsFormsIntegration ... – Partial