我有这样的东西,从父组件绑定子组件中的值。
<div class="col">
<Child @bind-InputValue="@parentInputValue"/>
</div>
我需要知道子项何时更改了该InputValue,这样我就可以调用父项中的方法,因为还有其他组件需要根据parentInputValue中的值进行更新。
我尝试过绑定InputValueChanged,但这给我带来了一个错误,因为它说它在两个或多个地方使用。我猜@bind InputValue已经设置好了。
我的问题是,我能以某种方式在父组件中捕捉到该事件吗?该子组件中大约有12个不同的输入,当子组件更改父InputValue对象中的任何内容时,我想以某种方式捕捉一个事件。
我还尝试在名为OnChange的子对象中设置一些参数,如果发生任何更改,我都会调用这些参数,但我使用了这些奇怪的下拉菜单,这让它很难实现。
好吧,当我需要这样做时,我使用了INotifyPropertyChanged
实现:
public class Model: INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private string _value;
public string Value
{
get { return _value; }
set
{
_value = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Value)));
}
}
}
<div class="col">
<Child @bind-InputValue="@model.Value"/>
</div>
@code {
private Model model = new Model();
protected override void OnInitialized()
{
model.PropertyChanged += (s, e) =>
{
Console.WriteLine($"Model {e.PropertyName} has changed.");
};
}
}