Tôi muốn có thể chọn một ô cụ thể trong Silverlight 3.0 DataGrid và đặt nó vào chế độ chỉnh sửa. Tôi có thể sử dụng VisualTreeManager để định vị ô. Làm cách nào để chuyển sang chế độ chỉnh sửa?Làm thế nào tôi có thể đặt một Silverlight 3 DataGridCell vào chế độ chỉnh sửa trong mã?
Mỗi DataGridCell trông như thế này trong VisualTreeManager:
System.Windows.Controls.DataGridCell
System.Windows.Controls.Grid
System.Windows.Shapes.Rectangle
System.Windows.Controls.ContentPresenter
System.Windows.Controls.TextBlock
System.Windows.Shapes.Rectangle
System.Windows.Shapes.Rectangle
với TextBlock có chứa dòng chữ Tôi muốn chỉnh sửa.
Cập nhật
Tiếp theo đề nghị @AnthonyWJones', đây là cách tôi đã cố gắng để làm điều này bằng BeginEdit().
Tôi muốn giữ nó đơn giản vì vậy tôi nghĩ rằng tôi muốn chọn một cột ở hàng đầu tiên. Ngay cả điều đó đã chứng minh ngoài kiến thức SL của tôi! Cuối cùng, tôi nhận được hàng đầu tiên bằng cách tạo ra một lĩnh vực được gọi firstRow để giữ nó:
private DataGridRow firstRow;
thêm một handler LoadingRow để DataGrid:
LoadingRow="computersDataGrid_LoadingRow"
và
private void computersDataGrid_LoadingRow(object sender, DataGridRowEventArgs e)
{
if (this.firstRow == null)
this.firstRow = e.Row;
}
và sau đó thêm nút vào bảng điều khiển để kích hoạt chỉnh sửa:
private void Button_Click(object sender, RoutedEventArgs e)
{
this.dataGrid.SelectedItem = this.firstRow;
this.dataGrid.CurrentColumn = this.dataGrid.Columns[4];
this.dataGrid.BeginEdit();
}
Tôi nhấp vào nút và chọn ô chính xác nhưng không được chỉnh sửa trên ô. Phải mất một nhấp chuột thủ công để đạt được điều đó.
Tôi đã dẫn xuống con đường này bởi người khác. Tôi sẽ đi với những gì bạn đã đề xuất và cho bạn biết. Cảm ơn. – ssg31415926
Tôi đã thử cả hai đề xuất của bạn mà không thành công. Đầu tiên, cách tiếp cận "chuẩn". Sử dụng SelectedItem và CurrentColumn không dẫn đến ô được tô đậm nhưng việc thêm BeginEdit() không có hiệu lực. Ô không lấy tiêu điểm và không chuyển sang chế độ chỉnh sửa. Sử dụng VisualStateManager cũng không hoạt động. – ssg31415926
@ ssg31415926 Tôi nghi ngờ rằng cách tiếp cận đầu tiên sẽ không hoạt động, tôi ngạc nhiên khi thứ hai không, bạn có thể chỉnh sửa câu hỏi của mình để bao gồm một đoạn mã ngắn có liên quan mô tả cách bạn đã thử không? – AnthonyWJones