昨天我在工作中發現了不正確的一段代碼。我將兩種不同類型的Texboxes
添加到同一個列表中。當我更改其中一個屬性名稱時,它們現在不會出現在StackPanel
中。未添加到StackPanel的文本框
讓我告訴你,這是我的工作性質,當我點擊一個按鈕,它增加了一個標題Textbox
到Stackpanel
:
ObservableCollection<string> _title = new ObservableCollection<string>();
public ObservableCollection<string> Title
{
get { return _title; }
set
{
_title = value;
OnPropertyChanged(() => Title);
}
}
這完美的作品,當我點擊一個按鈕,它添加標題Texbox
到StackPanel
。當我嘗試做了一個問題Textbox
它不會工作:
ObservableCollection<string> _questions = new ObservableCollection<string>();
public ObservableCollection<string> Questions
{
get { return _questions; }
set
{
_questions = value;
OnPropertyChanged(() => Questions);
}
}
我不明白爲什麼它不會添加爲我所調試的代碼同時爲冠軍和問題,他們做一模一樣?
有沒有人知道我在我的代碼中犯的錯誤?
編輯:
public ViewModel()
{
this.AddQuestionCommand = new RelayCommand(new Action<object>((o) => OnAddQuestion()));
this.AddTitleCommand = new RelayCommand(new Action<object>((o) => OnAddTitle()));
}
private void OnAddQuestion()
{
this.Questions.Add("Question...");
}
private void OnAddTitle()
{
this.Title.Add("Title...");
}
<ListView x:Name="QuestionList" ItemsSource="{Binding Question}" ItemTemplate="{DynamicResource Template}">
<ListView.ItemContainerStyle>
<Style>
<Setter Property="FrameworkElement.Margin" Value="40,20,0,0"/>
</Style>
</ListView.ItemContainerStyle>
<ListView.Resources>
<DataTemplate x:Key="Template">
<TextBox Text="{Binding .}" Width="200" HorizontalAlignment="Left"/>
</DataTemplate>
</ListView.Resources>
</ListView>
編輯2:
ViewModel _viewModel = new ViewModel();
public MainWindow()
{
InitializeComponent();
base.DataContext = _viewModel;
}
你或許應該顯示代碼,你實際上* *添加文本框。 – Clemens
@Clemens你需要XAML嗎? – user3157821
XAML如果您在xaml中添加文本框。否則代碼隱藏。 – Rayet