将焦点设置为datagrid中的行-WPF MVVM

时间:2019-03-01 11:41:22

标签: c# wpf wpfdatagrid

我已经在我的MVVM应用程序中实现了搜索命令。

当更新数据网格中的选定行时。 问题在于此行的焦点不会更新。

数据网格也不会滚动到行。

方法

private void Search(string userNameToSearch)
{
var SearchedUser = Users.FirstOrDefault(user => user.UserName == 
userNameToSearch.ToLower());
        if (SearchedUser == null)
            MessageBox_Show(null, "User Not Found", "Search");

SelectedUser = SearchedUser;
}

命令

RelayCommand _searchCommand;

    public ICommand SearchCommand
    {
        get
        {
            if (_searchCommand == null)
            {
                _searchCommand = new RelayCommand(param => Search((string)param));
            }

            return _searchCommand;
        }
    }

绑定

SelectedItem绑定

<DataGrid Grid.Row="1" Margin="10,5,10,10" ItemsSource="{Binding Users}" Name="UsersDataGrid" IsReadOnly="True" AutoGenerateColumns="False" SelectedItem="{Binding SelectedUser, Mode=TwoWay}" >

搜索按钮绑定

<Button Command="{Binding SearchCommand}" CommandParameter="{Binding ElementName=SearchBox, Path=Text}" Content ="Search" Width="50"></Button>

这是MVVM方法,这意味着我无法直接访问Datagrid。

编辑1:添加了selectedUser只是为了完整性。

public UserDetailsModel SelectedUser
    {
        get { return _selectedUser; }

        set
        {
            _selectedUser = value;
            OnPropertyChanged(nameof(SelectedUser));
        }
    }

0 个答案:

没有答案