- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个简单的 winform 和一个使用列表作为数据的绑定(bind)源。每当绑定(bind)源位置更改时,我都想采取行动。仔细阅读,看起来我需要的是“positionChanged”事件。但是,在我的应用程序中,我无法触发此事件。
有一个 bindingNavigator 使用 bindingSoure 进行导航和(用于调试)更改当前绑定(bind)源位置的按钮。
我已尝试尽可能地简化它。我的表单代码如下所示:
public partial class Form1 : Form
{
protected List<int> data;
public Form1()
{
InitializeComponent();
data = new List<int>();
data.Add(4);
data.Add(23);
data.Add(85);
data.Add(32);
}
private void Form1_Load(object sender, EventArgs e)
{
bindingSource1 = new BindingSource();
bindingSource1.DataSource = data;
bindingNavigator1.BindingSource = this.bindingSource1;
}
private void bindingSource1_PositionChanged(object sender, EventArgs e)
{
// Debugger breakpoint here.
// Expectation is this code will be executed either when
// button is clicked, or navigator is used to change positions.
int x = 0;
}
private void button1_Click(object sender, EventArgs e)
{
bindingSource1.Position = 2;
}
}
事件处理程序在设计器中自动生成:
//
// bindingSource1
//
this.bindingSource1.PositionChanged += new System.EventHandler(this.bindingSource1_PositionChanged);
现在,问题是无论何时我运行它,'PositionChanged' 事件都不会触发。我已验证 bindingSource1.Position 会根据导航器和按钮发生变化。但无论我做什么,事件实际上都不会触发。我猜这在这一点上是非常愚蠢的,或者我完全误解了事件应该在什么时候触发。
使用.NET 4.5
最佳答案
问题出在您的 Form_Load
private void Form1_Load(object sender, EventArgs e)
{
// this overrides the reference you have created in the desinger.cs file
// either remove this line
bindingSource1 = new BindingSource();
// or add this line
// bindingSource1.PositionChanged += bindingSource1_PositionChanged;
bindingSource1.DataSource = data;
bindingNavigator1.BindingSource = this.bindingSource1;
}
当您创建新对象 new BindingSource()
时,它没有订阅事件 PositionChanged
。这就是为什么您永远不会遇到断点的原因。
关于C# Windows 窗体 : BindingSource PositionChanged event not firing?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16657309/
我正在尝试编写一个应用程序,它使用 .net 4.0 System.Device.Location 命名空间监视计算机的位置。但是,我发现 GeoCoordinateWatcher.PositionC
我有同样的问题 QMediaPlayer positionChanged(). Sound inteerupts on slider updating 我使用 QMediayPlayer,每次发出信号
有没有办法在 Windows 窗体中 BindingSource 的 Current 更改(包括旧项目)之前获得通知? 我想在离开之前保存旧元素。 CurrentChanged 和 PositionC
上下文 我正在使用 C# (Xamarin Forms) 开发交通管理应用,它需要持续提供用户位置。 插件 我正在使用 James Montemagno 的 Geolocator 插件,当位置发生变化
我有一个简单的 winform 和一个使用列表作为数据的绑定(bind)源。每当绑定(bind)源位置更改时,我都想采取行动。仔细阅读,看起来我需要的是“positionChanged”事件。但是,在
我在 Geolocator 对象中设置一个 PositionChanged 监听器 var geolocator = new Geolocator(); geolocator.PositionChan
我想更改 PositionChanged 事件处理程序中的 DesiredAccuracy 和 ReportInterval,以便我可以动态更改不同位置的位置更新频率。 我做了这样的事情, void
背景:我精通 WPF/XAML,但不熟悉 Windows Phone 8。 希望我遗漏了一些愚蠢的东西...... 我希望 DesiredAccuracy 很高,但我也想挂接到 PositionCha
我是一名优秀的程序员,十分优秀!