我有类似这样的东西,我在绑定父组件的子组件中的值。
<div class="col">
<Child @bind-InputValue="@parentInputValue"/>
</div>
我需要知道子项何时更改了InputValue,以便可以在父项中调用方法,因为还有其他组件需要根据parentInputValue中的值进行更新。
我尝试绑定InputValueChanged,但这引发了一个错误,因为它说它在两个或多个位置使用。我猜@ bind-InputValue已经设置好了。
我的问题是-我能以某种方式在父组件中捕获该事件吗?该子组件中大约有12种不同的输入,当该子组件更改父InputValue对象中的任何内容时,我想以某种方式捕获事件。
我还尝试过在名为OnChange的子级中设置一些参数,如果发生任何更改,我将调用该参数,但是我使用的是这些奇怪的下拉菜单,因此很难实现该功能。
答案 0 :(得分:2)
好吧,当我需要这样做时,我使用了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.");
};
}
}