[英]Why doesn't property syntax work when dynamically adding TextBox
我正在嘗試學習如何在運行時添加WPF控件。 以下是一個簡單的示例,其中包含以下問題:
XAML
<Window x:Class="BindAndDynamicPractice.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<StackPanel Name="splMain">
<Button Name="btnAddMore" Click="btnAddMore_Click">Add Another</Button>
</StackPanel>
</Window>
C#
using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Shapes;
namespace BindAndDynamicPractice
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
public void btnAddMore_Click(object sender, RoutedEventArgs e)
{
AnotherTextBox mybindingtest = new AnotherTextBox();
splMain.Children.Add(mybindingtest.PropTextBox);
}
}
public class AnotherTextBox
{
System.Windows.Controls.TextBox _newTextBox = new TextBox();
public TextBox PropTextBox { get; set; }
}
}
這樣可以編譯,但是出現運行時錯誤,我認為這與嘗試使用屬性有關。 我相信這是因為當我將AnotherTextBox類更改為以下內容時:
public class AnotherTextBox
{
System.Windows.Controls.TextBox _newTextBox = new TextBox();
public TextBox PropTextBox()
{
return _newTextBox;
}
}
然后更新btnAddMore_Click:
public void btnAddMore_Click(object sender, RoutedEventArgs e)
{
AnotherTextBox mybindingtest = new AnotherTextBox();
splMain.Children.Add(mybindingtest.PropTextBox());
}
現在,它可以正常工作了。
那么,為什么使用完全獲取方法卻不能使用屬性呢?
謝謝
您沒有屬性,但是有方法。 因此,您必須使用方法語法來調用它。 您是否偶然來自Java?
一個方法:
public TextBox PropTextBox()
{
return _newTextBox;
}
屬性:
public TextBox PropTextBox {
get { return _newTextBox(); }
}
這里有關於屬性的教程: http : //msdn.microsoft.com/zh-cn/library/aa288470(v=vs.71).aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.