我在我正在构建的 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/