wpf listview绑定到多个源

时间:2013-12-19 13:40:19

标签: c# wpf data-binding

 <ListView x:Name="lvPayload" Grid.Row="1" ItemsSource="{Binding Payload}" HorizontalAlignment="Center" VerticalAlignment="Center">
                                <ListView.ItemTemplate>
                                    <DataTemplate>
                                        <TextBox Text="{Binding Value, StringFormat=0x{0:x2}, Mode=OneWay, Converter={StaticResource hexConverter}}" FontSize="15" Margin="2,1,2,1" MinWidth="25" MinHeight="20" VerticalAlignment="Center" HorizontalAlignment="Center"/>
                                    </DataTemplate>
                                </ListView.ItemTemplate>
                                <ListView.ItemsPanel>
                                    <ItemsPanelTemplate>
                                        <WrapPanel Orientation="Horizontal" VerticalAlignment="Center"></WrapPanel>
                                    </ItemsPanelTemplate>
                                </ListView.ItemsPanel>
                            </ListView>

我在TextBox.Text属性上设置了OneWay绑定模式。很明显,后面的集合不会更新。但无论如何我没有理由将它设置为TextBox。我仍然想做一些改变,我不希望它们反映在原始集合中,但在其他地方。我不知道我是否能做到这一点,有人可以给我一个提示吗?在最终修改之后,如果我遍历列表中的项目,我将从原始集合中获取值,未修改的值,我只需要新值。

1 个答案:

答案 0 :(得分:1)

您将不得不为此创建自己的自定义绑定(您自己的类继承自Binding类并覆盖set操作)

它本身就是一个很大的主题,你的实现会根据你对设定目标的要求而有所不同,但这是开始的地方。