public Image() { MoveUpCommand = new Command(() => ImageBody.MoveImageUp(this)); MoveDownCommand = new Command(() => ImageBody.MoveImageDown(this)); ViewCommand = new Command(() => ImageBody.ImageViewCommand(this)); RemoveCommand = new Command(() => ImageBody.ImageRemoveCommand(this)); }
//On add new image is stored to file void onAddButtonClicked(object sender, EventArgs e) { ImageViewModel i = BindingContext as ImageViewModel; ImageBody k = i.ImageBody; Image im = new Image(); //Does to chk if no empty string if ((url != null) && (url.Length > 0)) { warn.IsVisible = false; im.ImgSource = url; im.ImageFileName = url; im.Title = "Title"; im.Detail = "Detail"; im.Date = "mm/dd/yyyy"; im.ImageBody = i.ImageBody; im.Type = "5"; k.Images.Add(im); ImageSourceText.Text = ""; } else { warn.IsVisible = true; } //Commits user new added image to xml file string s = ConversionExt.SerializeObject(k); ConversionExt.Commit("visaPJ3.xml", s); app.RefreshImage = 1; }
public ImageViewModel(IDictionary <string, object> properties) { // Avoid problems with a null or empty collection. ImageBody = new ImageBody(); ImageBody.Images.Add(new Image()); //Check to see if file exists bool r = DependencyService.Get <ISaveAndLoad>().IfExists("visaPJ3.xml"); if (r) { String serializedStr = DependencyService.Get <ISaveAndLoad>().LoadText("visaPJ3.xml"); using (TextReader reader = new StringReader(serializedStr)) { XmlSerializer serializer = new XmlSerializer(typeof(ImageBody)); ImageBody = (ImageBody)serializer.Deserialize(reader); } } else { //Load from default xml on start of application var assembly = typeof(ImageViewModel).GetTypeInfo().Assembly; Stream stream = assembly.GetManifestResourceStream("DynamicPhotoFrame.ImageList.xml"); StreamReader reader = new StreamReader(stream); XmlSerializer xml = new XmlSerializer(typeof(ImageBody)); ImageBody = xml.Deserialize(reader) as ImageBody; stream.Dispose(); } int imageCount = 1; foreach (Image i in ImageBody.Images) { i.ImageBody = ImageBody; int item_type = Int32.Parse(i.Type); switch (item_type) { case 1: i.ImgSource = ImageSource.FromUri(new Uri(i.ImageFileName)); break; case 2: i.ImgSource = ImageSource.FromFile(i.ImageFileName); break; case 3: i.ImgSource = ImageSource.FromResource(i.ImageFileName); break; case 4: String streamId = i.ImageFileName; i.ImgSource = ImageSource.FromStream(() => { Assembly a = GetType().GetTypeInfo().Assembly; Stream s = a.GetManifestResourceStream(streamId); return(s); }); break; default: i.ImgSource = i.ImageFileName; break; } imageCount++; } }
//Reads from default xml at start of program //Subsequent reads are from saved file public ImageBody getImageBodyFromXML() { ImageBody imb = new ImageBody(); imageSourceDict = new List <KeyValuePair <String, ImageSource> >(); imb.Images.Add(new Image()); //Check to see if a new updated file has been created bool r = DependencyService.Get <ISaveAndLoad>().IfExists("visaPJ3.xml"); if (r) { String serializedStr = DependencyService.Get <ISaveAndLoad>().LoadText("visaPJ3.xml"); using (TextReader reader = new StringReader(serializedStr)) { XmlSerializer serializer = new XmlSerializer(typeof(ImageBody)); imb = (ImageBody)serializer.Deserialize(reader); } } else { //Read defalut at start of the project var assembly = typeof(ImageViewModel).GetTypeInfo().Assembly; Stream stream = assembly.GetManifestResourceStream("DynamicPhotoFrame.ImageList.xml"); StreamReader reader = new StreamReader(stream); XmlSerializer xml = new XmlSerializer(typeof(ImageBody)); imb = xml.Deserialize(reader) as ImageBody; stream.Dispose(); } int imageCount = 1; foreach (Image i in imb.Images) { i.ImageBody = imb; int item_type = Int32.Parse(i.Type); //Retreive default images switch (item_type) { case 1: i.ImgSource = ImageSource.FromUri(new Uri(i.ImageFileName)); break; case 2: i.ImgSource = ImageSource.FromFile(i.ImageFileName); break; case 3: i.ImgSource = ImageSource.FromResource(i.ImageFileName); break; case 4: String streamId = i.ImageFileName; i.ImgSource = ImageSource.FromStream(() => { Assembly a = GetType().GetTypeInfo().Assembly; Stream s = a.GetManifestResourceStream(streamId); return(s); }); break; default: i.ImgSource = i.ImageFileName; break; } imageSourceDict.Add(new KeyValuePair <String, ImageSource>(i.ImageFileName, i.ImgSource)); imageCount++; } return(imb); }