为元素指定 DataContext 使用 AvaloniaUI 重置其绑定值

问题描述 投票:0回答:0

我已经将不同用户控件中某些文本框的值绑定到视图模型中的某些值,仅来自其中一个。在一个名为“PreferencesView”的文本框上有一个文本框(记录为目录),它使用数据上下文将整个用户控件设置为“PreferencesViewModel”。

然后,在名为“ConnectionView”的控件上有一个文本框(记录为地址)。整体数据上下文设置为“ConnectionViewModel”,我希望它保持这种状态。但是,我试图更改我需要绑定到“PreferencesViewModel”的单个文本框的数据上下文,以访问此类从保存的首选项文件加载的值之一。 它应该加载的值:

似乎,在设置此上下文时,它正在对它绑定到的属性进行另一个 get 调用(来自 usercontrol 的那些被绑定的属性在每次组件初始化时只调用 1 个)并且同时以某种方式重置变量的值.

在下面的调试日志中看到 Directory 值只调用了一个,然后在 UI 屏幕截图中它已正确加载,而 Address 值的两倍却没有正确加载。 (服务器地址应该是日志中A-后面的值)

我指定的数据上下文是错误的还是这与文本框的行为有关?

c# mvvm data-binding datacontext avaloniaui
© www.soinside.com 2019 - 2024. All rights reserved.