我有一个Silverlight Datagrid谁是DataSource我每5秒刷新一次。 我希望当网格刷新时,焦点位于最后一行,而不是第一行。 我已经尝试将网格的SelectedIndex属性设置为最后一行,但它不起作用。
细节:
我将DataGrid绑定到它的ViewModel上的ObservalbleList(Of MyObject)属性,而SelectedIndex也是ViewModel上的属性。这两个属性都会引发属性更改事件(能够通过看到DataGrids DataSource明显更改而见证此工作,但是从未设置SelectedIndex。
在谷歌搜索问题时,我已经阅读过报告,在DataGrid上设置SelectedIndex是一个已知问题,但还没有找到解决方法。任何想法?
答案 0 :(得分:0)
在视图模型中为CurrentItem / Entity创建一个属性,如下所示:
private Customer customer;
public Customer CurrentCustomer
{
get { return this.customer; }
set
{
if (this.customer!= value)
{
this.customer= value;
OnPropertyChanged("CurrentCustomer");
}
}
}
在视图模型中将所有客户加载后,将CurrentCustomer设置为:
CurrentCustomer = context.Customers.Last();
在您的View / XAML中,将数据网格选定的项绑定到CurrentCustomer,如:
SelectedItem="{Binding CurrentCustomer, Mode=TwoWay}"
每次刷新5秒后,只需像上面一样重置CurrentCustomer。