Skip to content

Commit 0c62080

Browse files
authored
Sample added
0 parents  commit 0c62080

20 files changed

+1908
-0
lines changed

App.config

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<configuration>
3+
<startup>
4+
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
5+
</startup>
6+
</configuration>

App.xaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<Application x:Class="SyntaxEditor_CustomLanguage.App"
2+
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
3+
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
4+
xmlns:local="clr-namespace:SyntaxEditor_CustomLanguage"
5+
StartupUri="MainWindow.xaml">
6+
<Application.Resources>
7+
8+
</Application.Resources>
9+
</Application>

App.xaml.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Configuration;
4+
using System.Data;
5+
using System.Linq;
6+
using System.Threading.Tasks;
7+
using System.Windows;
8+
9+
namespace SyntaxEditor_CustomLanguage
10+
{
11+
/// <summary>
12+
/// Interaction logic for App.xaml
13+
/// </summary>
14+
public partial class App : Application
15+
{
16+
}
17+
}

Assets/syntaxeditor/PathIcon.xaml

Lines changed: 181 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,181 @@
1+
<ResourceDictionary
2+
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
3+
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
4+
<Grid x:Key="New"
5+
Width="12"
6+
Height="16">
7+
<Path
8+
Margin="2"
9+
Data="M0,0 L5.9999999,0 11,5 11,15 0,15 z"
10+
Fill="White"
11+
Stretch="Fill" />
12+
<Path
13+
Data="M7,1.7070007 L7,5 10.292999,5 z M1,1 L1,15 11,15 11,6 6,6 6,1 z M0,0 L6.7070007,0 12,5.2929993 12,16 0,16 z"
14+
Fill="{Binding RelativeSource={RelativeSource Mode=Self}, Path=(TextBlock.Foreground)}"
15+
Height="14" Width="10"
16+
Stretch="Fill" />
17+
</Grid>
18+
<Grid x:Key="Open"
19+
Width="16"
20+
Height="16">
21+
<Path
22+
Margin="2"
23+
Data="M0,0 L5,0 6,1 12,1 12,3.4999998 11.499065,3.9999996 14.716998,3.9999996 11.92699,10.999 4.1853847,10.984859 0,10.982999 z"
24+
Fill="White"
25+
Stretch="Fill" />
26+
<Path
27+
Data="M5.162991,5.0009986 L1.7839907,10.979999 4.3081884,10.984653 5.0009999,10.984999 5.0009999,10.98593 12.088991,10.999 14.480014,5.0009986 z M0,0 L5.7069998,0 6.7069998,1 13,1 13,3.9999998 12,3.9999998 12,1.9999998 6.2930002,1.9999998 5.2930002,1 0.99999994,1 0.99999994,10.335325 4.5790062,4.0009986 15.954991,4.0009986 12.765994,12.000998 4.552258,11.98482 0,11.982999 z"
28+
Fill="{Binding RelativeSource={RelativeSource Mode=Self}, Path=(TextBlock.Foreground)}"
29+
Margin="1.5"
30+
Stretch="Fill" />
31+
</Grid>
32+
<Grid
33+
x:Key="Save"
34+
Width="16"
35+
Height="16">
36+
<Path
37+
Width="13"
38+
Height="14"
39+
Data="M5.0000019,11 L5.0000019,15 11.000002,15 11.000002,11 z M4.0000019,1 L4.0000019,6 12.000002,6 12.000002,1 z M1,1 L1,13.174 2.7160001,15 4.0000019,15 4.0000019,10 12.000002,10 12.000002,15 15,15 15,1 13.000002,1 13.000002,7 3.0000019,7 3.0000019,1 z M0,0 L3.0000019,0 13.000002,0 16,0 16,16 12.000002,16 4.0000019,16 2.2840004,16 0,13.57 z"
40+
Fill="{Binding RelativeSource={RelativeSource Mode=Self}, Path=(TextBlock.Foreground)}"
41+
Stretch="Fill" />
42+
</Grid>
43+
<Grid x:Key="Undo" Width="16"
44+
Height="16">
45+
<Path
46+
Width="13"
47+
Height="14"
48+
Data="M9.4821357,1.1920929E-07 C10.842761,-0.00024974346 12.203512,0.51175806 13.240013,1.5367737 14.244013,2.5307888 14.798014,3.8528089 14.798014,5.2588305 14.798014,6.665852 14.244013,7.9868721 13.240013,8.9808874 L6.1400083,15.999994 5.4370078,15.288983 12.536013,8.2708763 C13.350013,7.4658641 13.798013,6.3958477 13.798013,5.2588305 13.798013,4.121813 13.350013,3.0527968 12.536013,2.2477847 10.852012,0.58275911 8.1110095,0.58375913 6.4280085,2.2477847 L1.6224454,6.9990014 6.9999999,6.9990014 6.9999999,7.9990014 0,7.9990014 0,0.99900149 0.99999989,0.99900149 0.99999989,6.2083468 5.7250084,1.5367737 C6.7610091,0.51275805 8.1215094,0.0002502203 9.4821357,1.1920929E-07 z"
49+
Fill="{Binding RelativeSource={RelativeSource Mode=Self}, Path=(TextBlock.Foreground)}"
50+
Stretch="Fill" />
51+
</Grid>
52+
<Grid x:Key="Redo" Width="16"
53+
Height="16">
54+
<Path
55+
Width="13"
56+
Height="14"
57+
Data="M5.3151203,9.1339757E-08 C6.6757408,-0.00024967992 8.0364867,0.5117554 9.0729848,1.536765 L13.797998,6.2083356 13.797998,0.99899839 14.797998,0.99899839 14.797998,7.9989983 7.7979971,7.9989983 7.7979971,6.9989983 13.175562,6.9989983 8.3699828,2.2477743 C6.6849877,0.58275561 3.9439944,0.58376269 2.2619902,2.2477743 1.447996,3.0527944 0.99999856,4.1218111 0.99999844,5.2588217 0.99999856,6.395848 1.447996,7.4658562 2.2619902,8.2708761 L9.3609782,15.288974 8.6580068,15.999998 1.5580116,8.980879 C0.55401539,7.9868757 1.0524127E-07,6.6658561 0,5.2588217 1.0524127E-07,3.8528098 0.55401539,2.5307833 1.5580116,1.536765 2.5940057,0.51275485 3.9545001,0.00025004542 5.3151203,9.1339757E-08 z"
58+
Fill="{Binding RelativeSource={RelativeSource Mode=Self}, Path=(TextBlock.Foreground)}"
59+
Stretch="Fill" />
60+
</Grid>
61+
<Grid x:Key="Cut"
62+
Width="16"
63+
Height="16">
64+
<Path
65+
Height="10" Width="10"
66+
Margin="1.747,0,1.805,3.614"
67+
Data="M0.4800034,0 L3.2370005,5.6329948 5.9950049,0 6.4480002,1.3919982 3.8000043,6.7859942 6.4040015,12.108999 5.4240053,12.385 3.2370005,7.9400011 1.0859987,12.314001 0,12.249991 2.675004,6.7859942 0.027000348,1.3919982 z"
68+
Fill="{Binding RelativeSource={RelativeSource Mode=Self}, Path=(TextBlock.Foreground)}"
69+
Stretch="Fill" />
70+
<Path
71+
Height="4" Margin="0,0,0,1" Width="14"
72+
VerticalAlignment="Bottom"
73+
Data="M2.0000019,1.0000033 C1.4480005,1.0000033 1.0000028,1.4489932 1.0000028,2.0000033 1.0000028,2.5509982 1.4480005,3.0000033 2.0000019,3.0000033 2.5519957,3.0000033 3.0000009,2.5509982 3.0000009,2.0000033 3.0000009,1.4489932 2.5519957,1.0000033 2.0000019,1.0000033 z M7.9999966,0.99999999 C7.4479966,0.99999993 6.9999966,1.449 6.9999966,2 6.9999966,2.5509999 7.4479966,3 7.9999966,3 8.5519962,3 8.9999962,2.5509999 8.9999962,2 8.9999962,1.449 8.5519962,0.99999993 7.9999966,0.99999999 z M2.0000019,3.2782542E-06 C3.1029978,3.3312692E-06 4,0.89700651 4,2.0000033 4,3.1030002 3.1029978,4.0000033 2.0000019,4.0000033 0.8969985,4.0000033 0,3.1030002 0,2.0000033 0,0.89700651 0.8969985,3.3312692E-06 2.0000019,3.2782542E-06 z M7.9999966,0 C9.1029968,-3.7871359E-08 9.9999962,0.89699995 9.9999962,2 9.9999962,3.1029999 9.1029968,4 7.9999966,4 6.8969965,4 5.9999966,3.1029999 5.9999966,2 5.9999966,0.89699995 6.8969965,-3.7871359E-08 7.9999966,0 z"
74+
Fill="#FF1D8BCC"
75+
Stretch="Fill" />
76+
</Grid>
77+
<Grid x:Key="Copy"
78+
Width="16"
79+
Height="16">
80+
<Path
81+
Height="14" Width="13"
82+
Data="M5.5000009,2.500005 L10.500001,2.500005 14.500001,6.500005 14.500001,14.500005 5.5000009,14.500005 z M0,0 L4.0000037,0 4.0000037,12 0,12 z"
83+
Fill="White"
84+
Stretch="Fill" />
85+
<Path
86+
Height="14" Width="13"
87+
Data="M9.0000026,11.999999 L13.000003,11.999999 13.000003,12.999999 9.0000026,12.999999 z M9.0000026,9.9999986 L13.000003,9.9999986 13.000003,10.999999 9.0000026,10.999999 z M12,4.7070035 L12,7.0000033 14.293,7.0000033 z M6.9999967,4.0000001 L6.9999967,15 14.999997,15 14.999997,8.0000033 11,8.0000033 11,4.0000001 z M5.9999967,2.9999999 L11.706997,2.9999999 15.999997,7.293 15.999997,16 5.9999967,16 z M0,0 L6.9999967,0 6.9999967,2 5.9999971,2 5.9999971,1 1,1 1,13 4.9999976,13 4.9999976,14 0,14 z"
88+
Fill="{Binding RelativeSource={RelativeSource Mode=Self}, Path=(TextBlock.Foreground)}"
89+
Stretch="Fill" />
90+
</Grid>
91+
<Grid x:Key="Paste"
92+
Width="14"
93+
Height="16">
94+
<Path
95+
Width="7"
96+
Margin="0,7,0,0"
97+
HorizontalAlignment="Right"
98+
Data="F1M122,367L127,367L127,360L122,360z M128,368L121,368L121,359L128,359z"
99+
Fill="#FF3A3A38"
100+
Stretch="Fill" />
101+
<Path
102+
Margin="0,2,2,0"
103+
Data="M0,0 L12,0 12,4 11,4 11,0.99999994 1.0000002,0.99999994 1.0000002,13 6.0000001,13 6.0000001,14 0,14 z"
104+
Fill="#FFDE6C00"
105+
Stretch="Fill" />
106+
<Path
107+
Margin="1,3,3,1"
108+
Data="M0,0 L10,0 10,3 9.0000001,3 9.0000001,0.99999994 1.0000001,0.99999994 1.0000001,1.5829999 1.0000001,2.5 1.0000001,11 5.0000001,11 5.0000001,12 0,12 z"
109+
Fill="#FFF8DB8F"
110+
Stretch="Fill" />
111+
<Path
112+
Margin="2.011,0.5,0.983,0.983"
113+
Data="M5.9873815,7.496151 L11.006,7.496151 11.006,14.516999 5.9873815,14.516999 z M0,5.4959998 L3.9880071,5.4964137 3.9880071,13.51695 0,13.51695 z M3.9889999,2.2337155E-15 C4.8170028,-4.4703477E-08 5.4889999,0.67098993 5.4889999,1.5 L5.4889999,2 7.4889999,2 7.4889999,5 0.4889999,5 0.4889999,2 2.4889999,2 2.4889999,1.5 C2.4889999,0.67098993 3.1609969,-4.4703477E-08 3.9889999,2.2337155E-15 z"
114+
Fill="#FFFAFAFA"
115+
Stretch="Fill" />
116+
<Path
117+
Height="6"
118+
Margin="2,0,4,0"
119+
VerticalAlignment="Top"
120+
Data="M4,1 C3.447998,1 3,1.4490051 3,2 L3,3 1,3 1,5 7,5 7,3 5,3 5,2 C5,1.4490051 4.552002,1 4,1 z M4,0 C5.1029968,0 6,0.89700317 6,2 L8,2 8,6 0,6 0,2 2,2 C2,0.89700317 2.8970032,0 4,0 z"
121+
Fill="#FF797774"
122+
Stretch="Fill" />
123+
</Grid>
124+
<Grid x:Key="IncreaseIndent"
125+
Height="15"
126+
Width="16">
127+
<Path
128+
Data="M0,12 L14,12 14,13 0,13 z M8,8 L14,8 14,9 8,9 z M8,4 L14,4 14,5 8,5 z M0,0 L14,0 14,1 0,1 z"
129+
Fill="{Binding RelativeSource={RelativeSource Mode=Self}, Path=(TextBlock.Foreground)}"
130+
Margin="1,2"
131+
Stretch="Fill" />
132+
<Path
133+
Width="6.187"
134+
Margin="1,4,1,4"
135+
HorizontalAlignment="Left"
136+
Data="M3.7870274,0 L6.1870296,2.5269938 3.7140274,4.9499879 3.0150268,4.2359896 4.2667925,3.008994 0,3.008994 0,2.0089941 4.3160441,2.0089941 3.0630267,0.68899834 z"
137+
Fill="{Binding RelativeSource={RelativeSource Mode=Self}, Path=(TextBlock.Foreground)}"
138+
Stretch="Fill" />
139+
</Grid>
140+
<Grid x:Key="DecreaseIndent"
141+
Height="15"
142+
Width="16">
143+
<Path Data="M0,12 L14,12 14,13 0,13 z M0,8 L6,8 6,9 0,9 z M0,4 L6,4 6,5 0,5 z M0,0 L14,0 14,1 0,1 z"
144+
Fill="{Binding RelativeSource={RelativeSource Mode=Self}, Path=(TextBlock.Foreground)}"
145+
Margin="1,2"
146+
Stretch="Fill" />
147+
<Path Data="M2.7930241,0 L3.4570298,0.74799681 2.0067817,2.0329917 6.1040182,2.0329917 6.1040182,3.0329916 2.0795547,3.0329916 3.4040294,4.2549822 2.7260236,4.9899793 0,2.4759896 z"
148+
Fill="{Binding RelativeSource={RelativeSource Mode=Self}, Path=(TextBlock.Foreground)}"
149+
HorizontalAlignment="Right"
150+
Margin="1,4,1,4"
151+
Stretch="Fill"
152+
Width="6.104"/>
153+
</Grid>
154+
<Grid x:Key="Print">
155+
<Path
156+
Margin="1"
157+
HorizontalAlignment="Center"
158+
VerticalAlignment="Center"
159+
Data="M5,11 L5,15 8.6761963,15 8.63936,14.971036 C7.6388242,14.144945 7,12.895562 7,11.5 7,11.344937 7.0078866,11.19168 7.0232801,11.040607 L7.0279369,11 z M13.145977,10.145986 L13.853984,10.853022 10.999985,13.706986 9.1459842,11.85303 9.8539908,11.145993 10.999985,12.293035 z M11.5,8 C9.5699999,8 7.9999999,9.5699999 8,11.5 7.9999999,13.43 9.5699999,15 11.5,15 13.43,15 15,13.43 15,11.5 15,9.5699999 13.43,8 11.5,8 z M2,7 L3,7 3,8 2,8 z M1,6 L1,11 4,11 4,10 7.2574663,10 7.2735391,9.954464 C7.9054199,8.2322998 9.5617187,7 11.5,7 12.895562,7 14.144945,7.6388242 14.971036,8.6393602 L15,8.6761966 15,6 12,6 4,6 z M5,1 L5,5 11,5 11,1 z M4,0 L12,0 12,5 16,5 16,11.5 C16,13.981 13.981,16 11.5,16 L4,16 4,12 0,12 0,5 4,5 z"
160+
Fill="{Binding RelativeSource={RelativeSource Mode=Self}, Path=(TextBlock.Foreground)}"
161+
Stretch="Uniform" />
162+
</Grid>
163+
<Grid x:Key="PrintPreview"
164+
Height="16" Margin="1"
165+
Width="14">
166+
<Path Data="M5.4990198,6.4999995 L10.49902,6.4999995 10.49902,9.4999971 12.500001,9.4999971 12.500001,12.499997 10.500001,12.499997 5.5000012,12.499997 3.5000012,12.499997 3.5000012,9.4999971 5.4990198,9.4999971 z M0,0 L5.5945956,0 10.673,5 3.9756827,5 3.9756827,8 1.9878413,8 1.9878413,14 0,14 z"
167+
Fill="White"
168+
Margin="1.001,1,0.499,1"
169+
Stretch="Fill"/>
170+
<Path Data="M6.9999962,14 L6.9999962,15.000001 10.999996,15.000001 10.999996,14 z M5,11.000001 L5,13 5.9999962,13 5.9999962,12.000001 11.999996,12.000001 11.999996,13 13,13 13,11.000001 12,11.000001 6,11.000001 z M7.0000005,8.000001 L7.0000005,10.000001 11,10.000001 11,8.000001 z M6,7.0000014 L12,7.0000014 12,10.000001 14,10.000001 14,14 11.999996,14 11.999996,16 5.9999962,16 5.9999962,14 4.0000005,14 4.0000005,10.000001 6,10.000001 z M7.0009851,1.7079848 L7.0009851,4.9999967 10.292997,4.9999967 z M0,0 L6.7070003,0 12,5.2929993 12,5.9989991 11.000985,5.9989991 11.000985,5.9999967 6.0009851,5.9999967 6.0009851,1 1,1 1,14.999998 4.9360003,14.999998 4.9360003,15.999998 0,15.999998 z"
171+
Fill="{Binding RelativeSource={RelativeSource Mode=Self}, Path=(TextBlock.Foreground)}"
172+
Height="15"
173+
Stretch="Fill"/>
174+
<Path Data="M0,0 L5,0 5,3 0,3 z"
175+
Fill="White"
176+
Height="1.968"
177+
Margin="6.999,0,2.999,1.016"
178+
Stretch="Fill"
179+
VerticalAlignment="Bottom" />
180+
</Grid>
181+
</ResourceDictionary>

Data/syntaxeditor/PythonSource.py

Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
import clr
2+
clr.AddReference("WindowsBase")
3+
clr.AddReference("PresentationCore")
4+
clr.AddReference("PresentationFramework")
5+
from System.Collections.Generic import *
6+
from System import *
7+
from System.ComponentModel import *
8+
from System.Collections.ObjectModel import *
9+
from System.Windows.Threading import *
10+
from System.Text import *
11+
12+
# NotifyPropertyChangedBase class implements INotifyPropertyChanged interface
13+
14+
class NotifyPropertyChangedBase(INotifyPropertyChanged):
15+
"""http://sdlsdk.codeplex.com/Thread/View.aspx?ThreadId=30322"""
16+
PropertyChanged = None
17+
def __init__(self):
18+
(self.PropertyChanged, self._propertyChangedCaller) = make_event()
19+
20+
def add_PropertyChanged(self, value):
21+
self.PropertyChanged += value
22+
23+
def remove_PropertyChanged(self, value):
24+
self.PropertyChanged -= value
25+
26+
def OnPropertyChanged(self, propertyName):
27+
self._propertyChangedCaller(self, PropertyChangedEventArgs(propertyName))
28+
29+
class StockData(NotifyPropertyChangedBase):
30+
"""
31+
Implementing business object StockData
32+
"""
33+
def Symbol(self, value):
34+
self.Symbol = value
35+
self.OnPropertyChanged("Symbol")
36+
37+
def Account(self, value):
38+
self.Account = value
39+
self.OnPropertyChanged("Account")
40+
41+
def LastTrade(self, value):
42+
self.LastTrade = value
43+
self.OnPropertyChanged("LastTrade")
44+
45+
def Change(self, value):
46+
self.Change = value
47+
self.OnPropertyChanged("Change")
48+
49+
def PreviousClose(self, value):
50+
self.PreviousClose = value
51+
self.OnPropertyChanged("PreviousClose")
52+
53+
def Open(self, value):
54+
self.Open = value
55+
self.OnPropertyChanged("Open")
56+
57+
def Volume(self, value):
58+
self.Volume = value
59+
self.OnPropertyChanged("Volume")
60+
61+
def InitializeOn(self, other):
62+
self.Symbol = other.Symbol
63+
self.LastTrade = other.LastTrade
64+
self.Change = other.Change
65+
self.PrevoiusChange = other.PreviousChange
66+
self.Open = other.Open
67+
self.Volume = other.Volume
68+
69+
class StocksViewModel(object):
70+
def __init__(self):
71+
self.r = Random()
72+
self.data = ObservableCollection[StockData]()
73+
self.AddRows(10)
74+
self.timer = DispatcherTimer()
75+
self.timer.Interval = TimeSpan.FromMilliseconds(500)
76+
self.timer.Tick += self.OnTimerTick
77+
self.StartTimer()
78+
79+
@property
80+
def Stocks(self):
81+
return self.data
82+
83+
""" Timer related code """
84+
def StartTimer(self):
85+
if not self.timer.IsEnabled:
86+
self.timer.Start()
87+
88+
def StopTimer(self):
89+
self.timer.Stop()
90+
91+
def OnTimerTick(self, sender, eventargs):
92+
self.AddRows(self.r.Next(5))
93+
self.ChangeRows(self.r.Next(20))
94+
self.DeleteRows(self.r.Next(5))
95+
96+
def AddRows(self, count):
97+
for i in range(0, count):
98+
newRec = StockData()
99+
newRec.Symbol = self.ChangeSymbol()
100+
newRec.Account = self.ChangeAccount()
101+
newRec.Open = Math.Round(self.r.NextDouble() * 30, 2)
102+
newRec.LastTrade = Math.Round(1 + self.r.NextDouble() * 50)
103+
d = self.r.NextDouble()
104+
if d < 0.5:
105+
newRec.Change = Math.Round(d, 2)
106+
else:
107+
newRec.Change = Math.Round(d, 2) * -1
108+
newRec.PreviousClose = Math.Round(self.r.NextDouble() * 30, 2)
109+
newRec.Volume = self.r.Next()
110+
self.data.Add(newRec)
111+
112+
def ChangeSymbol(self):
113+
builder = StringBuilder()
114+
random = Random()
115+
for i in range(0, 3):
116+
ch = Convert.ToChar(Convert.ToInt32(Math.Floor(26 * random.NextDouble() + 65)))
117+
builder.Append(ch)
118+
return builder.ToString()
119+
120+
def ChangeAccount(self):
121+
random = Random()
122+
next = random.Next(1, 5)
123+
if next == 1:
124+
return "American Funds"
125+
elif next == 2:
126+
return "ChildrenCollegeSavings"
127+
elif next == 3:
128+
return "DayTrading"
129+
elif next == 4:
130+
return "RetirementSavings"
131+
else:
132+
return "FidelityFunds"
133+
134+
def DeleteRows(self, count):
135+
if count < self.data.Count:
136+
for i in range(0, count):
137+
row = self.r.Next(self.data.Count)
138+
self.data.RemoveAt(row)
139+
140+
def ChangeRows(self, count):
141+
if count < self.data.Count:
142+
for i in range(0, count):
143+
recNo = self.r.Next(self.data.Count)
144+
recRow = self.data[recNo]
145+
recRow.LastTrade = Math.Round((1 + self.r.NextDouble() * 50))
146+
d = self.r.NextDouble()
147+
if d < 0.5:
148+
recRow.Change = Math.Round(d, 2)
149+
else:
150+
recRow.Change = Math.Round(d, 2) * -1
151+
recRow.PreviousClose = Math.Round(self.r.NextDouble() * 30, 2)
152+
recRow.Volume = self.r.Next()
153+
154+
s = StocksViewModel()
155+
grid = Application.FindName('dataGrid')
156+
grid.ItemsSource = s.Stocks

Images/output.png

85.9 KB
Loading

0 commit comments

Comments
 (0)