tuomasvaltanen

Untitled

Mar 25th, 2021 (edited)
214
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.60 KB | None | 0 0
  1. XAML:
  2.  
  3. <TextBlock FontSize="60" FontWeight="Bold" Text="{x:Bind PersonalText, Mode=OneWay}"></TextBlock>
  4. <Button Click="Button_Click_1">Muuta arvoa!</Button>
  5.  
  6. <Button Margin="0,40,0,0" Click="Button_Click_2">Hae satunnainen puujalkavitsi (englanniksi)</Button>
  7. <TextBlock Margin="0,20,0,0" Text="{x:Bind RandomJoke, Mode=OneWay}" FontSize="26" FontStyle="Italic"></TextBlock>
  8.  
  9.  
  10. C#:
  11.  
  12. public Exercise1()
  13. {
  14. PersonalText = "Alkuarvo!";
  15. RandomJoke = "Paina nappia hakeaksesi vitsin!";
  16. this.InitializeComponent();
  17.  
  18. }
  19.  
  20. // PROPERTY, eli C#:n versio Javan get- ja set-metodeista
  21. public String PersonalText { get; set; }
  22. public String RandomJoke { get; set; }
  23.  
  24. /*
  25. *
  26. // jos käytettäisiin Javaa, PersonalText olisi jotain tällaista:
  27. private String someText = "";
  28.  
  29. public String getSomeText()
  30. {
  31. return someText;
  32. }
  33.  
  34. public void setSomeText(String st)
  35. {
  36. someText = st;
  37. }
  38. */
  39.  
  40. private void Button_Click_1(object sender, RoutedEventArgs e)
  41. {
  42.  
  43. Random rnd = new Random();
  44. int randomNumber = rnd.Next(100);
  45.  
  46. PersonalText = "Buttonia painettu, arvottu luku: " + randomNumber;
  47. Debug.WriteLine(PersonalText);
  48. OnPropertyChanged("PersonalText");
  49. }
  50.  
  51. // HUOM: MainPage tässä tapauksessa toteuttaa rajapinnan INotifyPropertyChanged
  52. // seuraavat rivit ovat sitä varten olemassa, että tehdyt muutokset ServiceNameText-
  53. // propertyyn voidaan päivittää XAMLiin
  54. public event PropertyChangedEventHandler PropertyChanged;
  55.  
  56. private void OnPropertyChanged(string propertyName)
  57. {
  58. var eventHandler = this.PropertyChanged;
  59. if (eventHandler != null)
  60. eventHandler(this, new PropertyChangedEventArgs(propertyName));
  61. }
  62.  
  63. private void Button_Click_2(object sender, RoutedEventArgs e)
  64. {
  65. String jokeApi = "https://v2.jokeapi.dev/joke/Programming?blacklistFlags=nsfw,religious,political,racist,sexist,explicit&format=txt";
  66.  
  67. // contents muuttujan sisältö voi tulla tiedostostakin,
  68. // ks. tiedoston lukeminen, esimerkit Moodlessa
  69. string contents;
  70. using (var wc = new System.Net.WebClient())
  71. contents = wc.DownloadString(jokeApi);
  72.  
  73. RandomJoke = contents;
  74.  
  75. OnPropertyChanged("RandomJoke");
  76. }
  77.  
Add Comment
Please, Sign In to add comment