我對Xamarin.Forms和c#完全陌生,所以如果這是一個愚蠢的問題,請原諒我。 我必須創建一個頁面,其中包含一些條目和一個選擇器,並使用輸入的值來設置對象封面的屬性。 這裏是我的覆蓋目標:Xamarin.Forms將文本綁定到對象屬性
public class Cover
{
public enum Categories { Brasses, Percussions, Keyboards, Strings, Voices, Woodwinds, Other };
public User administrator { get; private set; }
public List<Track> tracks { get; private set; }
public String title { get; private set; }
public String author { get; private set; }
public String note { get; private set; }
public Boolean collaborative;
public Categories category;
public Cover(User administrator, String title, String author, String note, Categories category, Boolean collaborative, List<Track> tracks = null)
{
this.administrator = administrator;
this.tracks = tracks == null ? new List<Track>() : tracks;
this.title = title;
this.author=author;
this.category = category;
this.collaborative = collaborative;
}
public Cover() { }
這裏是我的網頁:
public createCover()
{
var userTest = new User("SmartPerson", "", null, null);
var entryTitle = new Entry
{
Placeholder = " ",
Keyboard = Keyboard.Text,
};
var entryAuthor = new Entry
{
Placeholder = " ",
Keyboard = Keyboard.Text,
};
var editorNote = new Editor
{
Text = "Ex: Metal Cover of the Super Mario main theme!",
FontSize = 10,
Keyboard = Keyboard.Text,
};
var pickerCategory = new Picker
{
Title = "Category",
VerticalOptions = LayoutOptions.Center
};
var categories = new List<string> { "Blues", "Country", "Dance", "Hip-Hop", "Jazz", "Metal", "Pop", "Rap", "Reggae", "Rock", "Classical", "Soundtracks", "Videogames", "Instrumental", "Anime", "Dubstep"};
foreach (string categoryName in categories)
{
pickerCategory.Items.Add(categoryName);
}
var collaborateSwitch = new Switch
{
HorizontalOptions = LayoutOptions.Center,
VerticalOptions = LayoutOptions.CenterAndExpand
};
var collaborate = new Label
{
Text = "Do you want other musicians to collaborate with you?",
FontSize = 15,
HorizontalOptions = LayoutOptions.Start,
};
var ok = new Button
{
Text = "Ok",
FontSize = Device.GetNamedSize(NamedSize.Medium, typeof(Button)),
HorizontalOptions = LayoutOptions.Center,
};
ok.Clicked += OnOkClicked;
var stack = new StackLayout
{
Children =
{
entryTitle,
entryAuthor,
editorNote,
pickerCategory,
collaborate,
collaborateSwitch,
ok,
},
};
var scrollView = new ScrollView
{
VerticalOptions = LayoutOptions.FillAndExpand,
Content = stack
};
Content = scrollView;
this.Padding = new Thickness(20);
this.BindingContext = new Cover();
}
private void OnOkClicked(object sender, EventArgs e)
{
///???
}
}
}
我想的是,當點擊OK按鈕時,對象覆蓋與所有的項值作爲屬性創建(所以entryTitle.TextProperty應該填充封面的Title屬性,等等),但我只是沒有找到辦法做到這一點。我需要在Ok si點擊時創建對象。 感謝您的幫助
你能否幫我理解一下這個問題? 我知道我必須學習如何克服這一點,但這是一個大學項目,我正在努力學習如何在xD的道路上做到這一點 – SnowyNe