WPF:在单元格值更改后获取我的对象索引
WPF: get my object index after cell value changed
所以我的 ListView
里面有这个 Slider
:
<DataTemplate x:Key="MyDataTemplate2">
<Grid Margin="-6" >
<Slider Name="sliderColumn" HorizontalAlignment="Left" VerticalAlignment="Center" TickPlacement="None"
Minimum="0" Maximum="50" Value="1" Style="{StaticResource SliderStyle}" Width="80"
TickFrequency="1" IsSnapToTickEnabled="True"/>
<TextBlock Text="{Binding Path=Value, ElementName=sliderColumn, StringFormat={}x{0}}" FontSize="11" Foreground="White"
VerticalAlignment="Center" HorizontalAlignment="Right"/>
</Grid>
</DataTemplate>
<GridViewColumn x:Name="SpeedCell" Width="100" Header="Speed" CellTemplate="{StaticResource MyDataTemplate2}" />
在此 Slider
值更改后,我可以获得新值:
private void sliderColumn_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
double val = e.NewValue;
}
但我仍然缺少我需要的最重要的信息:对象的索引号,它的 Slider
值已更改。
我需要索引的原因是因为我的 ListView
充满了我的对象,这个对象在 RadObservableCollection
里面并且在这个 Slider
值改变之后我想设置新的基于索引号的值。
有什么关于如何找到这个索引的建议吗?
你想做什么来将你的值写回到你存储数据的对象中。在你的情况下,你想将它写入列表条目的 属性 DataContext
.这样做真的很简单。您只需将 Slider.Value
绑定到支持 class 的 属性。
现在我假设 class 您将列表条目绑定到(所以 class 在 ObservableCollection
上的任何内容都有一个 属性 SliderValue
存储一个 int
。像这样:
public int SliderValue { get; set; }
因此,您将滑块绑定到支持 class 中的特定 属性。
<Slider Value="{Binding Path=SliderValue}" />
我删除了滑块标记中的所有格式代码,以专注于您需要添加的相关位。
编辑:所以关于你最后的评论 SliderValue
将是 Num
。
所以我的 ListView
里面有这个 Slider
:
<DataTemplate x:Key="MyDataTemplate2">
<Grid Margin="-6" >
<Slider Name="sliderColumn" HorizontalAlignment="Left" VerticalAlignment="Center" TickPlacement="None"
Minimum="0" Maximum="50" Value="1" Style="{StaticResource SliderStyle}" Width="80"
TickFrequency="1" IsSnapToTickEnabled="True"/>
<TextBlock Text="{Binding Path=Value, ElementName=sliderColumn, StringFormat={}x{0}}" FontSize="11" Foreground="White"
VerticalAlignment="Center" HorizontalAlignment="Right"/>
</Grid>
</DataTemplate>
<GridViewColumn x:Name="SpeedCell" Width="100" Header="Speed" CellTemplate="{StaticResource MyDataTemplate2}" />
在此 Slider
值更改后,我可以获得新值:
private void sliderColumn_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
double val = e.NewValue;
}
但我仍然缺少我需要的最重要的信息:对象的索引号,它的 Slider
值已更改。
我需要索引的原因是因为我的 ListView
充满了我的对象,这个对象在 RadObservableCollection
里面并且在这个 Slider
值改变之后我想设置新的基于索引号的值。
有什么关于如何找到这个索引的建议吗?
你想做什么来将你的值写回到你存储数据的对象中。在你的情况下,你想将它写入列表条目的 属性 DataContext
.这样做真的很简单。您只需将 Slider.Value
绑定到支持 class 的 属性。
现在我假设 class 您将列表条目绑定到(所以 class 在 ObservableCollection
上的任何内容都有一个 属性 SliderValue
存储一个 int
。像这样:
public int SliderValue { get; set; }
因此,您将滑块绑定到支持 class 中的特定 属性。
<Slider Value="{Binding Path=SliderValue}" />
我删除了滑块标记中的所有格式代码,以专注于您需要添加的相关位。
编辑:所以关于你最后的评论 SliderValue
将是 Num
。