在文件瀏覽器控件中
故障排除依賴關係綁定
>>在構建自定義文件瀏覽器控件時,出現了一個常見問題,其中選擇文件會更新控件的內部文本框,但未能將更改傳播到父級視圖模型中的SelectedFile
和標準綁定也會發生。 DependencyProperty
>
設置為其構造函數: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中文網其他相關文章!