ste*_*rus 8 c# wpf datagrid datagridview mvvm
我有两个数据网格并排绑定到不同的数据表,每个数据表都有自己的视图.
数据表都具有相同的行数,我希望两个网格保持相同的滚动位置.
我很难找到使用MVVM做到这一点的方法......任何人都有任何想法?
谢谢!-Steven
小智 6
我能够通过一些反思黑客来解决这个问题:
<DataGrid Name="DataGrid1" ScrollViewer.ScrollChanged="DataGrid1_ScrollChanged" />
<DataGrid Name="DataGrid2" />
Run Code Online (Sandbox Code Playgroud)
而代码本身是:
private void DataGrid1_ScrollChanged(object sender, ScrollChangedEventArgs e)
{
if (e.HorizontalChange != 0.0f)
{
ScrollViewer sv = null;
Type t = DataGrid1.GetType();
try
{
sv = t.InvokeMember("InternalScrollHost", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.GetProperty, null, DataGrid2, null) as ScrollViewer;
sv.ScrollToHorizontalOffset(e.HorizontalOffset);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6800 次 |
| 最近记录: |