在ItemsSource中设置绑定模式是否足够?

时间:2011-01-07 10:47:46

标签: wpf silverlight binding binding-mode

这是多余的(每个Mode=OneTime TextBlock)?

            <ListBox ItemsSource="{Binding Path=SearchResultsItems, Mode=OneTime}">
                <ListBox.ItemTemplate>
                    <DataTemplate>
                            <StackPanel>
                                <TextBlock Text="{Binding Path=Price, Mode=OneTime}" />
                                <TextBlock Text="{Binding Path=Description, Mode=OneTime}" />
                            </StackPanel>
                        </StackPanel>
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>

2 个答案:

答案 0 :(得分:2)

我不这么认为。

如果itemssource上的绑定是模式OneTime,则在更改列表(添加或删除项目)时不应该更改属性,但是仍然会从列表项的属性中获取属性更改。

因此,如果您不想在商品上显示价格或描述更改,则应在文本块上保留Mode = OneTime。

答案 1 :(得分:1)

我不这么认为。将ItemsSource设置为 OneTime 会关注项目的集合,而不是项目本身。 ItemsSource = OneTime 实际上意味着“如果初始化后项目集合发生变化,请不要更新我的ListBox”。