在c#函数中传递WPF有界控件使用的字符串

本文关键字:控件 字符串 WPF 函数 | 更新日期: 2023-09-27 18:12:57

如何将字符串传递到方法中?

我试着

private void UpdateValueRanges( .... , ref string decimalValueRange)
{ 
    ...
    decimalValueRange = "10..20";

但是我得到警告,参数被覆盖而没有被使用。

我想传递的是绑定到文本框控件的字符串(通过WPF, MVVM),因为我有多个文本框控件,我想传递属于绑定文本框的字符串…还是只能通过传递文本框控件本身来实现?

在c#函数中传递WPF有界控件使用的字符串

我不知道我是否理解你的问题,但如果你想简单地改变控制的属性发送它作为参数与'ref'也许你应该试试这个:

<!-- Window1.xaml -->
...
<Grid>
  <TextBox Text={Binding MySampleText} />
</Grid>
...
我从CodeBehind做了一个简单的绑定,首先实现

/* Window1.xaml.cs */
public partial class Window1 : Window, INotifyPropertyChanged
{
  public event PropertyChangedEventHandler PropertyChanged;
  ...
}

下一个带有OnPropertyChanged触发器和处理程序的完整属性:

private string _mySampleText;
public string MySampleText
{
    get { return _mySampleText; }
    set
    {
        if (value != _mySampleText)
        {
            _mySampleText = value;
            OnPropertyChanged("MySampleText");
        }
    }
}
...
protected void OnPropertyChanged(string passedValue)
{
    var handler = PropertyChanged;
    if (handler != null)
        handler(this, new PropertyChangedEventArgs(passedValue));
}

最后一个方法调用的构造函数:

public Window1()
{
    InitializeComponent();
    DataContext = this;
    UpdateValueRanges(ref _mySampleText);
}
private void UpdateValueRanges(ref string decimalValueRange)
{
    decimalValueRange = "10..20";
}

如果你有提示"…"参数未被使用而被覆盖",使用'out'代替'ref' -

何时使用ref/out

public Window1()
{
    InitializeComponent();
    DataContext = this;
    UpdateValueRanges(out _mySampleText);
}
private void UpdateValueRanges(out string decimalValueRange)
{
    decimalValueRange = "10..20";
}

这里是类似的问题,也许我发现-通过Ref文本框。文本