gpt4 book ai didi

c# - 绑定(bind)到 ScrollViewer 的 ViewportWidth 和 ViewportHeight

转载 作者:太空宇宙 更新时间:2023-11-03 11:46:39 27 4
gpt4 key购买 nike

我在我正在构建的 WPF 应用程序中使用模型- View - View 模型架构,我希望特定的 View 模型实际上对 View 的大小使用react(不是 MVVM 方法的正常用例,我知道)。

本质上,我有一个 ScrollViewer 对象,我希望 viewmodel 观察 scrollviewer 的宽度和高度,然后能够根据该宽度和高度做相应的事情。

我想做这样的事情:

<ScrollViewer ViewportWidth="{Binding Path=MyViewportWidth, Mode=OneWayToSource}" ViewportHeight="{Binding Path=MyViewportHeight, Mode=OneWayToSource}" />

但是当然这是不可能的,因为“ViewportWidth”和“ViewportHeight”不能被“绑定(bind)到”(也就是充当绑定(bind)目标),因为它们是只读的依赖属性(即使我没有写信给它们全部在此绑定(bind)中,因为它是 OneWayToSource)。

有人知道可以做这样的事情的好方法吗?

最佳答案

您可以尝试运行更新 View 模型的 OnLoaded 或 OnResizeChanged

private void ScrollViewer_Loaded(object sender, RoutedEventArgs e)
{
ScrollViewer sv = sender as ScrollViewer;
ViewModel vm = sv.DataContext as ViewModel;

vm.ScrollViewerHeight = sv.ViewportHeight;
vm.ScrollViewerWidth = sv.ViewportWidth;
}

关于c# - 绑定(bind)到 ScrollViewer 的 ViewportWidth 和 ViewportHeight,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3266991/

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