C# 从@ref组件引用调用方法时Blazor绑定不起作用

C# 从@ref组件引用调用方法时Blazor绑定不起作用,c#,razor,binding,blazor,C#,Razor,Binding,Blazor,我有一个简单的Blazor组件,它是绑定到属性的textbox: <input @bind="TheValue" /> @code { public string TheValue { get; set; } = "abc"; public void FillTextBox(string s) { TheValue = s; Console.WriteLine("TheVal

我有一个简单的Blazor组件,它是绑定到属性的textbox:

<input @bind="TheValue" />

@code {
    public string TheValue { get; set; } = "abc";

    public void FillTextBox(string s)
    {
        TheValue = s;
        Console.WriteLine("TheValue is = " + TheValue);
    }
}

@代码{
公共字符串值{get;set;}=“abc”;
公共空白填充文本框(字符串s)
{
值=s;
Console.WriteLine(“TheValue is=“+TheValue”);
}
}
在我使用组件的主页中,我有以下代码:

<MyTextbox @ref="myTextbox" /></MyTextbox>

<button @onclick="@(()=>myTextbox.FillTextBox("123"))">Fill</button>

@code {
     MyTextbox myTextbox;
}

填满
@代码{
MyTextbox MyTextbox;
}
当呈现组件时,它的默认值为“abc”,如果我在组件内部调用
FillTextBox
,它也可以正常工作,但是当我单击按钮时,尽管将执行
FillTextBox
(并在控制台中显示该值),它不会更改输入元素的值。 因此,总结一下,当我调用更改绑定变量的方法时,
@bind
不起作用


更新:我正在寻找数据绑定或将值传递给子组件,我正在寻找调用以前创建的子组件方法,而不必担心组件是否会正确呈现自己。

我认为当您的组件像这样使用时,组件不会重新呈现。也许添加一个state为的方法已经改变了,所以调用这个方法就可以了?

不是吗?@RyanVettese我已经尝试过了,但仍然不起作用。我认为这是一个非常严重的问题。它应该可以工作。它可以工作,但是如果必须显式通知绑定值是否已更改,那么双向绑定的意义何在?双向绑定在MyTextbox中工作。您的问题在于父/子级之间的通信。@nAviD-您可能需要将@bind value=“newvalue”放在使用例如的组件旁边=