![](/img/trans.png)
[英]How to create Invoice Number in Text box and auto increment it on button click?
[英]Create/Increment ObservableCollection On Button Click
我想看看是否有可能每次單擊按鈕時都可以增加ObservableCollection
?
ObservableCollection<string> _title = new ObservableCollection<string>();
public ObservableCollection<string> Title
{
get { return _title; }
set
{
_title = value;
OnPropertyChanged(() => Title);
}
}
如上面的C#代碼所示,我有一個Title的ObservableCollection
。 當前,當我添加一個新標題時,每個標題都進入相同的集合中。 但是,我要實現的目標是: 每次按下“添加標題”按鈕時,都會添加一個新標題並創建一個新的 ObservableCollection
。 這可能嗎,怎么辦?
EDIT1
目前,我動態創建了Textboxes
,然后將想要的任何字符串添加到該Textbox
。 從那里,我將名為“ Content”的Stackpanel
保存到.txt
文件中。 在此文件中,它將保存已創建的Textboxs
。 ( 由於綁定了文本框,它不會將字符串保存到該文件中 )。 然后,我認為這些字符串將保存到列表中,並且當我從.txt
文件加載Stackpanel
備份時,該字符串將被添加回Textbox
。
EDIT2
我更改了一些代碼:
public ViewModel()
{
this.AddTitleCommand = new RelayCommand(new Action<object>((o) => OnAddTitle()));
}
private void OnAddTitle()
{
NewTitle += titleName;
}
在執行此操作時,它不是將我的字符串添加為單詞,而是將字符串中的字母分隔為單獨的標題。
如果我對您的理解正確,那么每次按下Button
,您都希望將新string
添加到新集合中。 然后,您說要在每個集合中添加其他值……這聽起來像是您試圖以錯誤的方式滿足您的要求,但是您沒有告訴我們這些是什么,因此我們無法為您提供幫助那。 每次可以通過以下方式添加新集合:
private string newTitle = string.Empty;
private ObservableCollection<ObservableCollection<string>> collections = new
ObservableCollection<ObservableCollection<string>>();
public ObservableCollection<ObservableCollection<string>> Collections
{
get { return collections; }
set { collections = value; OnPropertyChanged(() => Collections); }
}
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);
}
NewTitle
屬性可以是綁定到UI中的TextBox
數據,允許用戶輸入新值,並且當按下Button
時, AddCollection
方法會將其添加到新集合中,然后將其添加到Collections
集合中。
我仍然認為這不是一個好主意。
更新>>>
請停止您正在做的事情……程序不是那樣編寫的。 我們保存數據, string
s 而不是 UI元素。 保存UI元素以及您不關心的所有其他屬性值絕對沒有意義。每次在數據加載時都可以重復使用在TextBox
中顯示string
s的任何方法。
ObservableCollection提供了一個采用IEnumerable的構造函數,因此可使用它來創建具有相同標題的新實例,並在其后添加新標題:
ObservableCollection<string> newCollection = new ObservableCollection<string>(Title);
newCollection.Add(theNewTitle)
Title = newCollection;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.