【发布时间】:2011-12-03 19:10:08
【问题描述】:
我有一个TextBlock,其内容是绑定到 ViewModel 的字符串属性的数据。这个TextBlock 周围有一个ScrollViewer。
我想要做的是每次日志更改时,ScrollViewer 将滚动到底部。理想情况下,我想要这样的东西:
<ScrollViewer ScrollViewer.HorizontalScrollBarVisibility="Auto"
ScrollPosition="{Binding Path=ScrollPosition}">
<TextBlock Text="{Binding Path=Logs}"/>
</ScrollViewer>
我不想想使用 Code Behind!我正在寻找的解决方案应该是使用 only 绑定和/或 Xaml。
【问题讨论】:
-
没有代码背后的任何具体原因?
-
你是对的,但在我看来,MVVM 只是建议你的业务逻辑(视图模型)不应该与你的 UI(视图)混合。 Scroll Viewer 是 UI/View 如果我们在代码中添加一些代码来将 ScrollViewer 移动到底部,它不会违反 MVVM,因为我们只是在玩 UI
-
@Haris:我理解并同意你的观点,但我不确定 OP 是否这样做。
-
@Kent Boogaart 我想要一个 MVVM 答案有三个原因: 1- 我使用的是 MVVM 模式,因此我想找到的第一种答案是 MVVM。 2- 在请求 MVVM 之前,我在 Google 或 StackOverflow 中找到了答案背后的代码。所以我不会要求答案,因为我知道我几乎会有解决方案背后的代码 3-只有当我知道所有不同类型的可能性时,我才能做出正确的选择,赢了'我?别担心,我不是狂热者;)
-
MVVM 没有
t deny code behind. I think the point of comments of @Harris and @Kent was that theres 没有任何重要的理由在 XAML 或帮助程序类中编写巨大的构造,只是为了避免在代码中包含一行特定于视图的代码。