Tôi có Chế độ xem có một đơn TextBox
và một số Button
ở bên dưới. Khi tải cửa sổ tôi muốn rằng TextBox
để có tiêu điểm.Trường tập trung WPF MVVM trên tải
Nếu tôi không sử dụng MVVM, tôi chỉ cần gọi TextBox.Focus()
trong sự kiện Đã tải. Tuy nhiên ViewModel của tôi không biết về quan điểm của tôi vì vậy làm thế nào tôi có thể thực hiện điều này mà không cần đưa mã vào codebehind của quan điểm của tôi?
EDIT: Sau khi đọc câu trả lời tôi đã quyết định đặt mã này trong giao diện XAML
<DockPanel FocusManager.FocusedElement="{Binding ElementName=MessageTextBox}">
<TextBox Name="MessageTextBox" Text="{Binding Message}"/>
</DockPanel>
Nếu đây là bất cứ điều gì khác hơn là tập trung trang đầu tiên tôi có lẽ sẽ khuyên bạn nên trả lời Jon Galloway kể từ khi nó có thể được điều khiển từ ViewModel.
Đó chính xác là những gì tôi đang tìm kiếm. Tôi nghĩ rằng mã này không thuộc về quan điểm và vì lý do nào đó tôi thích nó tốt hơn trong xaml so với mã phía sau. –
Đề xuất của Galloway cho phép bạn kiểm soát tiêu điểm từ ViewModel ... bạn cũng có thể xem xét kỹ hơn điều đó. –
Sau khi đọc một số câu trả lời khác, tôi không chắc mã đó thuộc về ViewModel hay không. Có vẻ như nó được gắn trực tiếp với chế độ xem. Nếu tôi có một trang phức tạp hơn đã thực sự di chuyển tiêu điểm dựa trên các sự kiện khác có thể có ý nghĩa. Điều đó nói rằng nó vẫn là một mẹo tốt đẹp để có. –