[英]WPF — Binding Not Working
我在這里有一個相當令人沮喪的問題...我有一個包含TabControl的WPF頁面,各種TabItems的內容是另一個WPF頁面(托管在一個Frame中,因為Page只能將Frame或Window作為父項) 。 即使正在顯示FlowCalibrationSummaryView,其上的所有內容都是空的,因為SummaryViewModel的數據綁定由於某種原因不起作用。 這是XAML的一部分:
<TabControl Grid.Row="0">
<TabItem Header="Current Calibration">
<TabItem.Content>
<Frame>
<Frame.Content>
<view:FlowCalibrationSummaryView DataContext="{Binding SummaryViewModel}"/>
</Frame.Content>
</Frame>
</TabItem.Content>
</TabItem>
</TabControl>
我在SummaryViewModel的get上有一個斷點,它只會被在父視圖模型中構造它的代碼所擊中。 這是被綁定的財產:
public const string SummaryViewModelPropertyName = "SummaryViewModel";
private FlowCalibrationSummaryViewModel _SummaryViewModel;
public FlowCalibrationSummaryViewModel SummaryViewModel
{
get { return _SummaryViewModel; }
set
{
if (_SummaryViewModel == value)
return;
_SummaryViewModel = value;
RaisePropertyChanged(SummaryViewModelPropertyName);
}
}
在這一點上,我完全難倒,我不能為我的生活弄清楚為什么這個綁定不起作用。 任何幫助將非常感激。
更新:它肯定與它在一個框架中有關。 我嘗試將FlowCalibrationSummaryView更改為UserControl而不是Page,以查看是否有幫助,但事實並非如此,然后我嘗試將其從包含的框架中取出並且有效。 我的項目中的所有視圖都是作為Pages完成的,所以為了保持一致性,我更喜歡這是一個Page,但是我必須在一個Frame中托管它。 有沒有我在這里缺少的東西,或者作為UserControl正確使用它?
我想看看這個問題中提供的答案。 在這種情況下,它似乎提供了Frame
行為的具體解釋。
除非有特定的原因你選擇了Frame
over UserControl
,否則你最好將這個(以及任何其他子視圖)重新實現為UserControl
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.