定义> 2参数&将值从一种方法传递到另一种方法

时间:2011-07-30 09:13:35

标签: c# .net xaml

我如何实际将方法中的值传递给另一个方法?我为我在c#中缺乏知识而道歉。到目前为止我所做的一切都行不通。我希望将值('MaxHeight')从Page()传递给来自fullNameControlLoaded()的'MaxHeight'。

Page.xaml.cs:

public Page(string _setArticles, string _setLength)
{
    InitializeComponent();

    //testing!
    //send value to method 'fullNameControl_Loaded' (summary length of each ListBox item)
    int MaxHeight = 0;
    if (!string.IsNullOrEmpty(_setLength))
    {
        if (_setLength.Contains("_3"))
            MaxHeight = 30;
            fullNameControl_Loaded(null, null, MaxHeight);
    }      
}

private TextBlock m_textBlock;
void fullNameControl_Loaded(object sender, RoutedEventArgs e, int MaxHeight)
{
    m_textBlock = sender as TextBlock;
    m_textBlock.MaxHeight = MaxHeight;   
}

3 个答案:

答案 0 :(得分:2)

你还没说清楚什么不起作用,但是这个:

if (_setLength.Contains("_3"))
    MaxHeight = 30;
    fullNameControl_Loaded(null, null, MaxHeight);

看起来应该是这样的:

if (_setLength.Contains("_3"))
{
    MaxHeight = 30;
    fullNameControl_Loaded(null, null, MaxHeight);
}

但是,此时sender将为空,因此fullNameControl_Loaded()会抛出NullReferenceException

真的似乎不太可能想要更改方法中m_textBlock的值...您希望在哪里初始化它?

答案 1 :(得分:0)

您可以将“MaxHeight”设置为类中的属性,然后Page构造函数可以设置它的值,然后当fullNameControl_Loaded函数运行时,该属性的值将是页面构造函数的更新值。

private int maxHeight = 0; public Page(string _setArticles,string _setLength)         {             的InitializeComponent();

        //testing!!!!
        //send value to method 'fullNameControl_Loaded'
        //(summary length of each ListBox item)
        maxHeight = 0;
        if (!string.IsNullOrEmpty(_setLength))
        {
            if (_setLength.Contains("_3"))
                maxHeight = 30;
                fullNameControl_Loaded(m_textBlock, null, MaxHeight);
        }      
    }

   private TextBlock m_textBlock;
    void fullNameControl_Loaded(object sender, RoutedEventArgs e, int MaxHeight)
    {
        m_textBlock = sender as TextBlock;
        m_textBlock.MaxHeight = maxHeight;   
    }

答案 2 :(得分:0)

这不是它的完成方式,在类范围内声明你的MaxHeight字段然后你可以从类中的任何地方访问它。不要修改生成的事件。