當我從窗體中點擊一個按鈕並在顯示的Textbox
中輸入一個字符串時,我需要它創建一個帶有該字符串名稱的新列表ObservableCollection
列表。如何在按鈕上單擊添加新的ObservableCollection?
帶有字符串名稱的標籤將出現在窗體上。然後,我們爲該標籤創建了一個ContextMenu
。從這裏你可以在你點擊的列表中添加另一個字符串。
這是保存按鈕的字符串:
private void btnSave_Click(object sender, RoutedEventArgs e)
{
string titleName = txtTitle.Text;
_viewmodel.RenameTitle(titleName);
_Addtitle.Execute(null);
this.Close();
}
然後我們進入ViewModel類(TITLENAME是第一個字符串進入)。
public ICommand AddTitleCommand { get; set; }
public ViewModel()
{
this.AddTitleCommand = new RelayCommand(new Action<object>((o) => OnAddTitle()));
}
private void OnAddTitle()
{
NewTitle += titleName;
}
OnAddTitle()
方法和下面兩個問題出現的地方。 目前,titleName
字符串被拆分,並且每個字符在窗體上顯示爲新集合(我們假設),而不是標題爲一個集合。 - 應該有多個標題與多個集合,每個標題都有自己的集合。標題應該是一個單詞,而不是分成單獨的字符。形式結合的ItemsSource
到NewTitle
財產上
public string NewTitle
{
get { return newTitle; }
set { newTitle = value; OnPropertyChanged(() => NewTitle); }
}
public void AddCollection()
{
ObservableCollection<string> collection = new ObservableCollection<string>();
collection.Add(NewTitle);
Collections.Add(collection);
}
XAML代碼:
<StackPanel Name="Content" Margin="0,99,0,0">
<TextBox x:Name="txtname" Height="23" TextWrapping="Wrap" Margin="200,0,500,0"/>
<ListView x:Name="TitleList" ItemsSource="{Binding NewTitle}" ItemTemplate="{DynamicResource Template}" BorderBrush="{x:Null}">
</ListView>
</StackPanel>
編輯:
這是個什麼樣子,它應該顯示爲一個集合中的一個字符串。
爲什麼會有每個標題的集合?當然你想要一個標題集合?你綁定到NewTitle,它是一個字符串。你想綁定到一個集合。 –
@CharlesMager我們希望每個標題都有不同的集合,因爲每個標題下面都會有一組問題字符串。因此,標題將有自己的集合,但正如您經過有效評論,所有標題也可能是一個集合,但可以留待以後。 – user3157821
@Sheridan最後一個問題沒有具體說明,代碼還不成熟。更不用說因爲這樣的帖子,答案與問題無關,這顯然是我們的錯誤。希望能夠澄清問題並解答您的問題。 – user3157821