【发布时间】:2013-10-16 21:08:28
【问题描述】:
我有一个DataGrid 并实现了拖放功能
现在,当我尝试滚动时,它不能简单地显示一个裸体标志。
我订阅了ScrollBar.Scroll,但在里面,我无法获得如何滚动的信息,
我不知道我应该向上还是向下滚动。我一定错过了什么。请帮忙。谢谢
<toolkit:DataGrid x:Name="dg"
Style="{StaticResource DataGridStyle}"
RowDetailsVisibilityMode="VisibleWhenSelected"
ItemsSource="{Binding Relations}"
SelectionUnit="FullRow"
SelectedItem="{Binding ListSelection}" IsReadOnly="True"
VerticalScrollBarVisibility="Auto"
HorizontalScrollBarVisibility="Auto"
MouseDoubleClick="dg_MouseDoubleClick"
PreviewKeyDown="DgPreviewKeyDown"
PreviewMouseWheel="DgPreviewMouseWheel"
PreviewMouseLeftButtonDown="DataGridPreviewMouseLeftButtonDown"
PreviewMouseMove="DataGridMouseMove"
Drop="DataGridDrop"
DragEnter="DataGridDragEnter"
ScrollBar.Scroll="DgScroll">
<toolkit:DataGrid.Columns>
<toolkit:DataGridTextColumn Header="Symbol" Binding="{Binding Relation}" MinWidth="310">
<toolkit:DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="TextWrapping" Value="Wrap" />
</Style>
</toolkit:DataGridTextColumn.ElementStyle>
</toolkit:DataGridTextColumn>
<toolkit:DataGridTextColumn Header="Description" Width="*" MinWidth="300" Binding="{Binding Description}">
<toolkit:DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="TextWrapping" Value="Wrap" />
</Style>
</toolkit:DataGridTextColumn.ElementStyle>
</toolkit:DataGridTextColumn>
</toolkit:DataGrid.Columns>
</toolkit:DataGrid>
private void DgScroll(object sender, ScrollEventArgs e)
{
var viewer = DragDropHelper.GetDescendantByType(dg, typeof(ScrollViewer)) as ScrollViewer;
if (viewer == null) return;
var newVal = e.NewValue; //How I can know scroll up or down???
viewer.ScrollToVerticalOffset(viewer.VerticalOffset + 30)
}
【问题讨论】:
-
我没有从stackoverflow.com/questions/4124877/…找到解决方案
-
我尝试了单独的滚动查看器,但这会导致新问题 - 性能缓慢。 stackoverflow.com/questions/11127511/…
-
看看这个问题的答案:stackoverflow.com/questions/10733581/…