使用 TabControl DataTemplate 进行绑定

本文关键字:绑定 DataTemplate TabControl 使用 | 更新日期: 2023-09-27 18:31:08

我正在尝试使用TabControl来容纳一些视图模型。

    <TabControl SelectedIndex="{Binding QuestionIdx, Mode=TwoWay, 
        UpdateSourceTrigger=PropertyChanged}" ItemsSource="{Binding ProblemsVM}">
        <TabControl.ContentTemplateSelector>
            <problemSlector:ProblemsViewSelector>
                <problemSlector:ProblemsViewSelector.FreeResponseTemplate>
                    <DataTemplate>
                        <views:FreeResponseView />
                    </DataTemplate>
                </problemSlector:ProblemsViewSelector.FreeResponseTemplate>
            </problemSlector:ProblemsViewSelector>
        </TabControl.ContentTemplateSelector>
    </TabControl>

。我已经解散并确认(OnDataContextChanged)FreeResponseView的数据上下文是FreeResponseViewModel。 此时将显示FreeResponseView,并且选项卡的标题正确。 但是,在FreeResponseView中,我有以下行似乎不起作用。

   <toolkit:RichTextBox Text="{Binding Question, Mode=OneWay}" />

它不绑定数据源中的Question

使用 TabControl DataTemplate 进行绑定

终于想通了。代码没有错,问题出在RichTextbox。 我正在使用Xceed Extended WPF RichTextbox. 事实证明,您必须使绑定为可读和可写,否则绑定不起作用。

<toolkit:RichTextBox Text="{Binding Question}" IsReadOnly="True" />