首頁 > 後端開發 > C++ > 為什麼我的依賴關係綁定不更新父viewModel?

為什麼我的依賴關係綁定不更新父viewModel?

DDD
發布: 2025-02-01 17:21:09
原創
519 人瀏覽過

Why Doesn't My DependencyProperty Binding Update the Parent ViewModel?

在文件瀏覽器控件中

故障排除依賴關係綁定

>

>在構建自定義文件瀏覽器控件時,出現了一個常見問題,其中選擇文件會更新控件的內部文本框,但未能將更改傳播到父級視圖模型中的>屬性。 即使使用SelectedFile和標準綁定也會發生。 DependencyProperty>

根本原因通常源於將UserControl的

設置為其構造函數:DataContext

<code class="language-csharp">DataContext = this;</code>
登入後複製
這個自我引用

覆蓋父母的遺傳DataContext,打破了與父視圖模型的綁定。 DataContext

>

解決方案:利用bindingRelativeSource

該解決方案涉及修改USERCORTROL XAML中的綁定以明確針對父視圖模型。 使用RelativeSource遍歷視覺樹:

<code class="language-xaml"><TextBox Text="{Binding SelectedFile, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}" /></code>
登入後複製

此修訂後的綁定確保USERCORTROL中的屬性可以正確地綁定到父視圖模型的SelectedFile屬性,即使在內部設置了UserControl的SelectedFile時。 DataContext現在,當嵌入USERCONTROL時:

綁定將按預期運行,在文件選擇時更新父視圖模型的
<code class="language-xaml"><FileBrowserControl SelectedFile="{Binding SelectedFile}" /></code>
登入後複製
屬性。

以上是為什麼我的依賴關係綁定不更新父viewModel?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板