gpt4 book ai didi

wpf - 以编程方式将 Datagrid 行显示在 WPF、MVVM 中

转载 作者:行者123 更新时间:2023-12-04 14:32:34 25 4
gpt4 key购买 nike

我想以编程方式显示一行数据网格。我有超过 100 行。当我创建一行(我通过将一个项目添加到一个可观察的集合来做)时,我希望选择该新行并将其显示出来。我能够在我的代码中选择新行,但无法进行滚动。更重要的是,我希望该行的第一个单元格处于编辑模式,以便用户可以输入文本。我正在遵循应用程序的 MVVM 模式,并希望在我的 View 中保留零代码。我怎样才能做到这一点?

任何帮助或建议将不胜感激....

更新:

这就是我在 XAML 中所做的

<telerik:RadGridView ItemsSource="{Binding AllPartClasses}" 
SelectedItem="{Binding SelectedPartClassViewModel, Mode=TwoWay}"
SelectionMode="Single" IsSynchronizedWithCurrentItem="True">

在我的 View 模型中我做了这个
void AddNewPartClassExecute()
{
PartClass newPartClass = new PartClass();
PartClassViewModel tempPartClass = new PartClassViewModel(newPartClass);
tempPartClass.IsInValid = true;
AllPartClasses.Add(tempPartClass);
SelectedPartClassViewModel = tempPartClass;
Global.DbContext.PartClasses.AddObject(newPartClass);

//OnPropertyChanged("AllPartClasses");
}
public PartClassViewModel SelectedPartClassViewModel
{
get
{
return _selectedPartClassViewModel;
}
set
{
_selectedPartClassViewModel = value;
OnPropertyChanged("SelectedPartClassViewModel");
}
}

它对我不起作用。

最佳答案

对于常规 WPF DataGrid您可以使用 ScrollIntoView .在您的 View 中,将 SelectionChanged 事件连接到您的 View 代码隐藏 cs 文件中的以下内容。

private void OnSelectionChanged( object sender, SelectionChangedEventArgs e )
{
Selector selector = sender as Selector;
DataGrid dataGrid = selector as DataGrid;
if ( dataGrid != null && selector.SelectedItem != null && dataGrid.SelectedIndex >= 0 )
{
dataGrid.ScrollIntoView( selector.SelectedItem );
}
}

关于wpf - 以编程方式将 Datagrid 行显示在 WPF、MVVM 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10131073/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com