- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
当我向 ListViewItem
添加事件时,
<Style TargetType="{x:Type ListViewItem}">
<EventSetter Event="PreviewMouseDown" Handler="listViewItem_MouseDown" />
</Style>
然后在GridViewColumn
里面的内容中再添加一个事件,
<GridViewColumn Header="Action">
<GridViewColumn.CellTemplate>
<DataTemplate>
<Image x:Name="imgEdit"
VerticalAlignment="Center"
HorizontalAlignment="Left"
Width="40"
Height="40"
Tag="{Binding ProductBarcode}"
Cursor="Hand"
MouseDown="img_MouseDown">
<Image.Style>
<Style TargetType="{x:Type Image}">
<Setter Property="Source" Value="/Resources/edit_button.png" />
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Source" Value="/Resources/edit_button_hovered.png" />
</Trigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
我无法在 Image
控件中触发事件。触发的是 ListViewItem
中的事件。如何访问Image
控件中的事件?
事件如下:
private void img_MouseDown(object sender, MouseButtonEventArgs e)
{
switch ((sender as Image).Name)
{
case "imgEdit":
MessageBox.Show("EDIT");
break;
default:
break;
}
}
private void listViewItem_MouseDown(object sender, RoutedEventArgs e)
{
MessageBox.Show("ROW CLICKED");
}
最佳答案
ListViewItem
的 PreviewMouseDown
事件将始终在图像的 MouseDown
事件之前引发。这是路由事件的工作方式:https://msdn.microsoft.com/en-us/library/ms742806(v=vs.110).aspx . PreviewMouseDown
是一个隧道事件,MouseDown
是一个冒泡事件。
如果您不想在单击 Image
时处理 PreviewMouseDown
事件,您可以检查 OriginalSource
的类型RoutedEventArgs
如果是 Image
则立即从事件处理程序返回:
private void listViewItem_MouseDown(object sender, RoutedEventArgs e)
{
if (e.OriginalSource is Image)
return; // do nothing
MessageBox.Show("ROW CLICKED");
}
关于c# - 无法访问 GridViewColumn 的内容中的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43581841/
我在我的 C# WPF 应用程序中使用带有 GridViewColumn 的 ListView。 对于某些列,我使用了可见性管理器 (this one)。但是当第 1 列和第 3 列可见而第 2 列不
我正在尝试在 Visual Studio 2013、.net 4.5 中使用“System.Windows.Controls.GridViewColumn”,但我收到此错误: The type 'Gr
我有一个在运行时构造的 listView,即在编译时不知道这些列。 我想将 DataTemplate 应用于单元格,使 TextAlignment 属性为 TextAlignment.Right。创建
我目前正在努力获得我的 CheckBox es 在我的 GridViewColumn 中正确居中s。 我定义了一个 Style我的 CheckBox像这样:
我在 WPF 应用程序中使用 ListView 控件而不是 DataGrid。我想为我的 ListView.GridViewColumn 提供 * 宽度,但每当我为 ListView.GridView
我有以下 WPF ListView:
默认情况下,文本在 ListView 的标题中居中(不在内容单元格中!),我一直在努力使其左对齐,这里是我想出了什么: ... File 这似乎是更改标题外
我想对 GridViewColumn 中的列应用格式(对齐文本、货币格式 0000.00)。 这个想法如下:在列(GridViewColumn)中,我们可以对其应用某种格式的文本(左对齐、右对齐、
我有一个包含多个列的 GridView。我只想在右键单击特定菜单中的项目时显示 ContextMenu。这是我到目前为止所拥有的:
我有一个 GridViewColumn,其内容是一个 TextBlock: GridViewColumn column = new GridViewColumn(); column.Header =
我正在使用 ListView ( GridView / GridView 列)第一列在哪里每行仅包含复选框。而不是添加我想要的全选按钮将复选框添加到第一列的标题中。 选中标题中的复选框将选中所有其他复
我希望 GridViewColumn“from”中的信息右对齐。 这是我所做的,但它不起作用:
我想以编程方式将我的 GridViewColumns 设置为按内容自动调整大小,而不是按标题 (Width = double.NaN) 我搜索了很长时间,发现这个问题用 DataGridColumns
我有一个 GridViewColumn 和一个 HeaderTemplate,它有一个 Image 和一个 TextBlock。当用户将鼠标悬停在 Image 上时,我正在更改其不透明度,但我仍然获得
我有一个 View DisplayTestsView.cs,在那个 View 中我有
我在应用程序退出时存储列宽并在启动时恢复它们。除非用户双击标题,否则一切正常。这会导致列宽变为 double.NaN,据我所知这是一个用于自动调整大小的标志。那我就有问题了。 在调查该问题时,我注意到
当我向 ListViewItem 添加事件时, 然后在GridViewColumn里面的内容中再添加一个事件,
我正在使用 ListView 和 GridView。是否有 GridViewColumn resize 事件? 最佳答案 我将改为处理 PropertyChanged 事件。 PropertyChan
有没有办法获取 GridViewColumn 的父级 (ListView)? 我尝试过使用 LogicalTreeHelper 和 VisualTreeHelper,但没有成功。 我可以分享一个你尝试
我有一个 GridViewColumn,我已经绑定(bind)了它: Binding Path = Validated 返回枚举值,imageConverter 获取该值并返回 System.Win
我是一名优秀的程序员,十分优秀!