<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。我仍然想做一些改变,我不希望它们反映在原始集合中,但在其他地方。我不知道我是否能做到这一点,有人可以给我一个提示吗?在最终修改之后,如果我遍历列表中的项目,我将从原始集合中获取值,未修改的值,我只需要新值。
答案 0 :(得分:1)
您将不得不为此创建自己的自定义绑定(您自己的类继承自Binding类并覆盖set操作)
它本身就是一个很大的主题,你的实现会根据你对设定目标的要求而有所不同,但这是开始的地方。