0
我試圖學習如何在運行時添加WPF控件。下面是一個問題,一個簡單的例子如下:爲什麼動態添加TextBox時屬性語法不起作用
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。我現在看到我嘗試使用自動屬性而不綁定到底層專用字段時出錯。 – user1181337