簡體   English   中英

WPF - 綁定不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM