pee*_*eer 5 wpf listview button
我有一个ListView只包含按钮.我想要做的很简单,我想要点击按钮的索引.列表的计数从0到100不等,因此当用户单击按钮6时,我需要此号码进行处理.
我把ListView这个定义为:
<ListView Name="myListView"
ItemsSource="{Binding Source={StaticResource myDataModel},
Path=StatusList,
Mode=OneWay}">
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"></StackPanel>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
<ListView.ItemTemplate>
<DataTemplate>
<Button Mode=OneWay}"
Click="Button_Click"/>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Run Code Online (Sandbox Code Playgroud)
我最初的想法是创建一个带ID的自定义按钮,并将索引绑定到ID,但我无法弄清楚如何做到这一点.
我试过了:
int a = myListView.Items.IndexOf(((Button)sender));
Run Code Online (Sandbox Code Playgroud)
在事件处理程序内部,但它总是返回0xffffffff任何人都可以告诉我如何获取单击按钮的索引?
Bas*_*Bas 27
使用DataContext查找项目:
var item = (sender as FrameworkElement).DataContext;
int index = myListView.Items.IndexOf(item);
Run Code Online (Sandbox Code Playgroud)
这应该有效:
将 ListView 与 ItemsControl 交换并将 AlternationCount 设置为非常高的数字(高于列表中的最大元素数)。发出命令并将当前索引作为参数传递。
XAML:
<Window.CommandBindings>
<CommandBinding
Command="Select"
Executed="Click_Executed" />
</Window.CommandBindings>
<ItemsControl AlternationCount="9999" Name="myListView"
ItemsSource="{Binding Source={StaticResource myDataModel},
Path=StatusList,
Mode=OneWay}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"></StackPanel>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button Command="Select"
CommandParameter="{Binding Path=(ItemsControl.AlternationIndex), RelativeSource={RelativeSource TemplatedParent}}"
Content="{Binding RelativeSource={RelativeSource Mode=TemplatedParent}, Path=(ItemsControl.AlternationIndex)}" Width="200" Height="20" Click="Button_Click"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Run Code Online (Sandbox Code Playgroud)
背后代码:
private void Click_Executed(object sender, ExecutedRoutedEventArgs e)
{
MessageBox.Show("Index: " + e.Parameter.ToString());
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11253 次 |
| 最近记录: |