ShakerChannelView.axaml 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655
  1. <UserControl
  2. x:Class="Dynamicloadsimulationdevice.Views.ShakerChannelView"
  3. xmlns="https://github.com/avaloniaui"
  4. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  5. xmlns:convert="using:IViewModel.Convert"
  6. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  7. xmlns:ivm="using:IViewModel"
  8. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  9. xmlns:shakermodel="using:Shaker.Model"
  10. xmlns:suki="https://github.com/kikipoulet/SukiUI"
  11. xmlns:vm="using:Dynamicloadsimulationdevice.ViewModels"
  12. d:DesignHeight="450"
  13. d:DesignWidth="800"
  14. x:DataType="vm:ShakerChannelViewModel"
  15. DataContext="{Binding Source={x:Static vm:ShakerChannelViewModel.Instance}}"
  16. mc:Ignorable="d">
  17. <TabControl>
  18. <TabItem Header="{DynamicResource AI}">
  19. <ScrollViewer>
  20. <UniformGrid Columns="2">
  21. <suki:GlassCard Margin="10">
  22. <suki:GroupBox Header="{DynamicResource Displacement}">
  23. <StackPanel
  24. HorizontalAlignment="Left"
  25. VerticalAlignment="Top"
  26. Orientation="Vertical">
  27. <Grid
  28. Width="560"
  29. HorizontalAlignment="Center"
  30. VerticalAlignment="Top"
  31. ColumnDefinitions="62,*,0.8*,0.8*">
  32. <TextBlock
  33. HorizontalAlignment="Center"
  34. VerticalAlignment="Center"
  35. Text="{DynamicResource ServoValveIndex}" />
  36. <TextBlock
  37. Grid.Column="1"
  38. HorizontalAlignment="Center"
  39. VerticalAlignment="Center"
  40. Text="{DynamicResource Channel}" />
  41. <TextBlock
  42. Grid.Column="2"
  43. HorizontalAlignment="Center"
  44. VerticalAlignment="Center">
  45. <Run Text="{DynamicResource Sensitivity}" />
  46. <Run Text="{Binding Displacement[0].Value.Unit, StringFormat='{}(mV/{0})', Mode=OneWay}" />
  47. </TextBlock>
  48. <TextBlock
  49. Grid.Column="3"
  50. HorizontalAlignment="Center"
  51. VerticalAlignment="Center">
  52. <Run Text="{DynamicResource Bias}" />
  53. <Run Text="{Binding Displacement[0].Value.Unit, StringFormat='{}({0})', Mode=OneWay}" />
  54. </TextBlock>
  55. </Grid>
  56. <ScrollViewer>
  57. <ItemsControl ItemsSource="{Binding Displacement}">
  58. <ItemsControl.ItemTemplate>
  59. <DataTemplate>
  60. <Grid
  61. Width="560"
  62. HorizontalAlignment="Center"
  63. VerticalAlignment="Top"
  64. ColumnDefinitions="62,*,0.8*,0.8*">
  65. <TextBlock
  66. HorizontalAlignment="Center"
  67. VerticalAlignment="Center"
  68. Text="{Binding Index}" />
  69. <ComboBox
  70. Grid.Column="1"
  71. ItemsSource="{Binding Source={x:Static vm:ShakerConfigViewModel.Instance}, Path=AIs}"
  72. SelectedValue="{Binding Value.Channel}" />
  73. <NumericUpDown
  74. Grid.Column="2"
  75. Increment="0.001"
  76. Maximum="{Binding Value.MaxSensitivity}"
  77. Minimum="{Binding Value.MinSensitivity}"
  78. Value="{Binding Value.Sensitivity}" />
  79. <NumericUpDown
  80. Grid.Column="3"
  81. Margin="4,0,4,0"
  82. Increment="0.001"
  83. Maximum="{Binding Value.MaxBias}"
  84. Minimum="{Binding Value.MinBias}"
  85. Value="{Binding Value.Bias}" />
  86. </Grid>
  87. </DataTemplate>
  88. </ItemsControl.ItemTemplate>
  89. </ItemsControl>
  90. </ScrollViewer>
  91. </StackPanel>
  92. </suki:GroupBox>
  93. </suki:GlassCard>
  94. <StackPanel>
  95. <suki:GlassCard Margin="10">
  96. <suki:GroupBox Header="{DynamicResource Acceleration}">
  97. <StackPanel
  98. HorizontalAlignment="Left"
  99. VerticalAlignment="Top"
  100. Orientation="Vertical">
  101. <Grid
  102. Width="460"
  103. HorizontalAlignment="Center"
  104. VerticalAlignment="Top"
  105. ColumnDefinitions="62,*,0.8*">
  106. <TextBlock
  107. HorizontalAlignment="Center"
  108. VerticalAlignment="Center"
  109. Text="{DynamicResource ServoValveIndex}" />
  110. <TextBlock
  111. Grid.Column="1"
  112. HorizontalAlignment="Center"
  113. VerticalAlignment="Center"
  114. Text="{DynamicResource Channel}" />
  115. <TextBlock
  116. Grid.Column="2"
  117. HorizontalAlignment="Center"
  118. VerticalAlignment="Center">
  119. <Run Text="{DynamicResource Sensitivity}" />
  120. <Run Text="{Binding Acceleration[0].Value.Unit, StringFormat='{}(mV/{0})', Mode=OneWay}" />
  121. </TextBlock>
  122. </Grid>
  123. <ScrollViewer>
  124. <ItemsControl ItemsSource="{Binding Acceleration}">
  125. <ItemsControl.ItemTemplate>
  126. <DataTemplate>
  127. <Grid
  128. Width="460"
  129. HorizontalAlignment="Center"
  130. VerticalAlignment="Top"
  131. ColumnDefinitions="62,*,0.8*">
  132. <TextBlock
  133. HorizontalAlignment="Center"
  134. VerticalAlignment="Center"
  135. Text="{Binding Index}" />
  136. <ComboBox
  137. Grid.Column="1"
  138. ItemsSource="{Binding Source={x:Static vm:ShakerConfigViewModel.Instance}, Path=AIs}"
  139. SelectedValue="{Binding Value.Channel}" />
  140. <NumericUpDown
  141. Grid.Column="2"
  142. Increment="0.001"
  143. Maximum="{Binding Value.MaxSensitivity}"
  144. Minimum="{Binding Value.MinSensitivity}"
  145. Value="{Binding Value.Sensitivity}" />
  146. </Grid>
  147. </DataTemplate>
  148. </ItemsControl.ItemTemplate>
  149. </ItemsControl>
  150. </ScrollViewer>
  151. </StackPanel>
  152. </suki:GroupBox>
  153. </suki:GlassCard>
  154. <suki:GlassCard Margin="10">
  155. <suki:GroupBox Header="{DynamicResource OutInputSignal}">
  156. <StackPanel
  157. HorizontalAlignment="Left"
  158. VerticalAlignment="Top"
  159. Orientation="Vertical">
  160. <Grid
  161. Width="460"
  162. HorizontalAlignment="Center"
  163. VerticalAlignment="Top"
  164. ColumnDefinitions="62,*,0.8*">
  165. <TextBlock
  166. HorizontalAlignment="Center"
  167. VerticalAlignment="Center"
  168. Text="{DynamicResource ServoValveIndex}" />
  169. <TextBlock
  170. Grid.Column="1"
  171. HorizontalAlignment="Center"
  172. VerticalAlignment="Center"
  173. Text="{DynamicResource Channel}" />
  174. <TextBlock
  175. Grid.Column="2"
  176. HorizontalAlignment="Center"
  177. VerticalAlignment="Center">
  178. <Run Text="{DynamicResource OutSignalGain}" />
  179. <Run Text="{Binding OutSignal[0].Value.Unit, StringFormat='{}({0}/mV)', Mode=OneWay}" />
  180. </TextBlock>
  181. </Grid>
  182. <ScrollViewer>
  183. <ItemsControl ItemsSource="{Binding OutSignal}">
  184. <ItemsControl.ItemTemplate>
  185. <DataTemplate>
  186. <Grid
  187. Width="460"
  188. HorizontalAlignment="Center"
  189. VerticalAlignment="Top"
  190. ColumnDefinitions="62,*,0.8*">
  191. <TextBlock
  192. HorizontalAlignment="Center"
  193. VerticalAlignment="Center"
  194. Text="{Binding Index}" />
  195. <ComboBox
  196. Grid.Column="1"
  197. ItemsSource="{Binding Source={x:Static vm:ShakerConfigViewModel.Instance}, Path=AIs}"
  198. SelectedValue="{Binding Value.Channel}" />
  199. <NumericUpDown
  200. Grid.Column="2"
  201. Increment="0.001"
  202. Maximum="{Binding Value.MaxSensitivity}"
  203. Minimum="{Binding Value.MinSensitivity}"
  204. Value="{Binding Value.Sensitivity}" />
  205. </Grid>
  206. </DataTemplate>
  207. </ItemsControl.ItemTemplate>
  208. </ItemsControl>
  209. </ScrollViewer>
  210. </StackPanel>
  211. </suki:GroupBox>
  212. </suki:GlassCard>
  213. </StackPanel>
  214. <suki:GlassCard Margin="10">
  215. <suki:GroupBox Header="{DynamicResource ValvePressure}">
  216. <StackPanel
  217. HorizontalAlignment="Left"
  218. VerticalAlignment="Top"
  219. Orientation="Vertical">
  220. <Grid
  221. Width="560"
  222. HorizontalAlignment="Center"
  223. VerticalAlignment="Top"
  224. ColumnDefinitions="62,*,0.8*,0.8*">
  225. <TextBlock
  226. HorizontalAlignment="Center"
  227. VerticalAlignment="Center"
  228. Text="{DynamicResource ServoValveIndex}" />
  229. <TextBlock
  230. Grid.Column="1"
  231. HorizontalAlignment="Center"
  232. VerticalAlignment="Center"
  233. Text="{DynamicResource Channel}" />
  234. <TextBlock
  235. Grid.Column="2"
  236. HorizontalAlignment="Center"
  237. VerticalAlignment="Center">
  238. <Run Text="{DynamicResource Sensitivity}" />
  239. <Run Text="{Binding Pressure[0].Value.Unit, StringFormat='{}(mV/{0})', Mode=OneWay}" />
  240. </TextBlock>
  241. <TextBlock
  242. Grid.Column="3"
  243. HorizontalAlignment="Center"
  244. VerticalAlignment="Center">
  245. <Run Text="{DynamicResource Bias}" />
  246. <Run Text="{Binding Pressure[0].Value.Unit, StringFormat='{}({0})', Mode=OneWay}" />
  247. </TextBlock>
  248. </Grid>
  249. <ScrollViewer>
  250. <ItemsControl ItemsSource="{Binding Pressure}">
  251. <ItemsControl.ItemTemplate>
  252. <DataTemplate>
  253. <Grid
  254. Width="560"
  255. HorizontalAlignment="Center"
  256. VerticalAlignment="Top"
  257. ColumnDefinitions="62,*,0.8*,0.8*">
  258. <TextBlock
  259. HorizontalAlignment="Center"
  260. VerticalAlignment="Center"
  261. Text="{Binding Index}" />
  262. <ComboBox
  263. Grid.Column="1"
  264. ItemsSource="{Binding Source={x:Static vm:ShakerConfigViewModel.Instance}, Path=AIs}"
  265. SelectedValue="{Binding Value.Channel}" />
  266. <NumericUpDown
  267. Grid.Column="2"
  268. Increment="0.001"
  269. Maximum="{Binding Value.MaxSensitivity}"
  270. Minimum="{Binding Value.MinSensitivity}"
  271. Value="{Binding Value.Sensitivity}" />
  272. <NumericUpDown
  273. Grid.Column="3"
  274. Margin="4,0,4,0"
  275. Increment="0.001"
  276. Maximum="{Binding Value.MaxBias}"
  277. Minimum="{Binding Value.MinBias}"
  278. Value="{Binding Value.Bias}" />
  279. </Grid>
  280. </DataTemplate>
  281. </ItemsControl.ItemTemplate>
  282. </ItemsControl>
  283. </ScrollViewer>
  284. </StackPanel>
  285. </suki:GroupBox>
  286. </suki:GlassCard>
  287. <suki:GlassCard Margin="10">
  288. <suki:GroupBox Header="{DynamicResource DifferentialPressure}">
  289. <StackPanel
  290. HorizontalAlignment="Left"
  291. VerticalAlignment="Top"
  292. Orientation="Vertical">
  293. <Grid
  294. Width="560"
  295. HorizontalAlignment="Center"
  296. VerticalAlignment="Top"
  297. ColumnDefinitions="62,*,0.8*,0.8*">
  298. <TextBlock
  299. HorizontalAlignment="Center"
  300. VerticalAlignment="Center"
  301. Text="{DynamicResource ServoValveIndex}" />
  302. <TextBlock
  303. Grid.Column="1"
  304. HorizontalAlignment="Center"
  305. VerticalAlignment="Center"
  306. Text="{DynamicResource Channel}" />
  307. <TextBlock
  308. Grid.Column="2"
  309. HorizontalAlignment="Center"
  310. VerticalAlignment="Center">
  311. <Run Text="{DynamicResource Sensitivity}" />
  312. <Run Text="{Binding DifferentialPressure[0].Value.Unit, StringFormat='{}(mV/{0})', Mode=OneWay}" />
  313. </TextBlock>
  314. <TextBlock
  315. Grid.Column="3"
  316. HorizontalAlignment="Center"
  317. VerticalAlignment="Center">
  318. <Run Text="{DynamicResource Bias}" />
  319. <Run Text="{Binding DifferentialPressure[0].Value.Unit, StringFormat='{}(mV/{0})', Mode=OneWay}" />
  320. </TextBlock>
  321. </Grid>
  322. <ScrollViewer>
  323. <ItemsControl ItemsSource="{Binding DifferentialPressure}">
  324. <ItemsControl.ItemTemplate>
  325. <DataTemplate>
  326. <Grid
  327. Width="560"
  328. HorizontalAlignment="Center"
  329. VerticalAlignment="Top"
  330. ColumnDefinitions="62,*,0.8*,0.8*">
  331. <TextBlock
  332. HorizontalAlignment="Center"
  333. VerticalAlignment="Center"
  334. Text="{Binding Index}" />
  335. <ComboBox
  336. Grid.Column="1"
  337. ItemsSource="{Binding Source={x:Static vm:ShakerConfigViewModel.Instance}, Path=AIs}"
  338. SelectedValue="{Binding Value.Channel}" />
  339. <NumericUpDown
  340. Grid.Column="2"
  341. Increment="0.001"
  342. Maximum="{Binding Value.MaxSensitivity}"
  343. Minimum="{Binding Value.MinSensitivity}"
  344. Value="{Binding Value.Sensitivity}" />
  345. <NumericUpDown
  346. Grid.Column="3"
  347. Margin="4,0,4,0"
  348. Increment="0.001"
  349. Maximum="{Binding Value.MaxBias}"
  350. Minimum="{Binding Value.MinBias}"
  351. Value="{Binding Value.Bias}" />
  352. </Grid>
  353. </DataTemplate>
  354. </ItemsControl.ItemTemplate>
  355. </ItemsControl>
  356. </ScrollViewer>
  357. </StackPanel>
  358. </suki:GroupBox>
  359. </suki:GlassCard>
  360. </UniformGrid>
  361. </ScrollViewer>
  362. </TabItem>
  363. <TabItem Header="{DynamicResource AO}">
  364. <ScrollViewer>
  365. <Grid ColumnDefinitions="*,auto" RowDefinitions="*,*">
  366. <suki:GlassCard
  367. Grid.Row="0"
  368. Grid.Column="0"
  369. Margin="10">
  370. <suki:GroupBox Header="{DynamicResource Vertical}">
  371. <StackPanel
  372. Width="620"
  373. HorizontalAlignment="Left"
  374. VerticalAlignment="Top"
  375. Orientation="Vertical">
  376. <Grid
  377. Width="{Binding $parent[StackPanel].Width}"
  378. HorizontalAlignment="Center"
  379. VerticalAlignment="Top"
  380. ColumnDefinitions="62,140,120,0.5*,0.3*,0.5*">
  381. <TextBlock
  382. HorizontalAlignment="Center"
  383. VerticalAlignment="Center"
  384. Text="{DynamicResource ServoValveIndex}" />
  385. <TextBlock
  386. Grid.Column="1"
  387. HorizontalAlignment="Center"
  388. VerticalAlignment="Center"
  389. Text="{DynamicResource Channel}" />
  390. <TextBlock
  391. Grid.Column="2"
  392. HorizontalAlignment="Center"
  393. VerticalAlignment="Center">
  394. <Run Text="{DynamicResource ServoValvePolarity}" />
  395. </TextBlock>
  396. <TextBlock
  397. Grid.Column="3"
  398. HorizontalAlignment="Center"
  399. VerticalAlignment="Center">
  400. <Run Text="{DynamicResource Bias}" />
  401. <Run Text="(V)" />
  402. </TextBlock>
  403. <TextBlock
  404. Grid.Column="4"
  405. HorizontalAlignment="Center"
  406. VerticalAlignment="Center"
  407. Text="{DynamicResource ServoValveOpenLoop}" />
  408. <TextBlock
  409. Grid.Column="5"
  410. HorizontalAlignment="Center"
  411. VerticalAlignment="Center">
  412. <Run Text="{DynamicResource OpenLoopVoltage}" />
  413. <Run Text="(V)" />
  414. </TextBlock>
  415. </Grid>
  416. <ScrollViewer>
  417. <ItemsControl ItemsSource="{Binding Vertical}">
  418. <ItemsControl.ItemTemplate>
  419. <DataTemplate>
  420. <Grid
  421. Width="{Binding $parent[StackPanel].Width}"
  422. HorizontalAlignment="Center"
  423. VerticalAlignment="Top"
  424. ColumnDefinitions="62,140,120,0.5*,0.3*,0.5*">
  425. <TextBlock
  426. HorizontalAlignment="Center"
  427. VerticalAlignment="Center"
  428. Text="{Binding Index}" />
  429. <ComboBox
  430. Grid.Column="1"
  431. ItemsSource="{Binding Source={x:Static vm:ShakerConfigViewModel.Instance}, Path=AOs}"
  432. SelectedValue="{Binding Value.Channel}" />
  433. <ComboBox
  434. Grid.Column="2"
  435. ItemsSource="{Binding Source={x:Static shakermodel:Polarity.Positive}, Converter={x:Static convert:EnumToCollectionConverter.Instance}, Mode=OneTime}"
  436. SelectedValue="{Binding Path=Value.Polarity}"
  437. SelectedValueBinding="{Binding Value}">
  438. <ComboBox.ItemTemplate>
  439. <DataTemplate>
  440. <TextBlock Text="{ivm:ResourceBinding Key}" />
  441. </DataTemplate>
  442. </ComboBox.ItemTemplate>
  443. </ComboBox>
  444. <NumericUpDown
  445. Grid.Column="3"
  446. Margin="4,0,4,0"
  447. Increment="0.001"
  448. Maximum="{Binding Value.MaxBias}"
  449. Minimum="{Binding Value.MinBias}"
  450. Value="{Binding Value.Bias}" />
  451. <ToggleSwitch
  452. Grid.Column="4"
  453. HorizontalAlignment="Center"
  454. VerticalAlignment="Center"
  455. IsChecked="{Binding Value.OpenLoop}" />
  456. <NumericUpDown
  457. Grid.Column="5"
  458. Margin="4,0,4,0"
  459. Increment="0.001"
  460. IsEnabled="{Binding Value.OpenLoop}"
  461. Maximum="{Binding Value.MaxOpenLoopDriver}"
  462. Minimum="{Binding Value.MinOpenLoopDriver}"
  463. Value="{Binding Value.OpenLoopDriver}" />
  464. </Grid>
  465. </DataTemplate>
  466. </ItemsControl.ItemTemplate>
  467. </ItemsControl>
  468. </ScrollViewer>
  469. </StackPanel>
  470. </suki:GroupBox>
  471. </suki:GlassCard>
  472. <suki:GlassCard
  473. Grid.Row="1"
  474. Grid.Column="0"
  475. Margin="10,0,10,10">
  476. <suki:GroupBox Header="{DynamicResource Horizontal}">
  477. <StackPanel
  478. Width="620"
  479. HorizontalAlignment="Left"
  480. VerticalAlignment="Top"
  481. Orientation="Vertical">
  482. <Grid
  483. Width="{Binding $parent[StackPanel].Width}"
  484. HorizontalAlignment="Center"
  485. VerticalAlignment="Top"
  486. ColumnDefinitions="62,140,120,0.5*,0.3*,0.5*">
  487. <TextBlock
  488. HorizontalAlignment="Center"
  489. VerticalAlignment="Center"
  490. Text="{DynamicResource ServoValveIndex}" />
  491. <TextBlock
  492. Grid.Column="1"
  493. HorizontalAlignment="Center"
  494. VerticalAlignment="Center"
  495. Text="{DynamicResource Channel}" />
  496. <TextBlock
  497. Grid.Column="2"
  498. HorizontalAlignment="Center"
  499. VerticalAlignment="Center">
  500. <Run Text="{DynamicResource ServoValvePolarity}" />
  501. </TextBlock>
  502. <TextBlock
  503. Grid.Column="3"
  504. HorizontalAlignment="Center"
  505. VerticalAlignment="Center">
  506. <Run Text="{DynamicResource Bias}" />
  507. <Run Text="(V)" />
  508. </TextBlock>
  509. <TextBlock
  510. Grid.Column="4"
  511. HorizontalAlignment="Center"
  512. VerticalAlignment="Center"
  513. Text="{DynamicResource ServoValveOpenLoop}" />
  514. <TextBlock
  515. Grid.Column="5"
  516. HorizontalAlignment="Center"
  517. VerticalAlignment="Center">
  518. <Run Text="{DynamicResource OpenLoopVoltage}" />
  519. <Run Text="(V)" />
  520. </TextBlock>
  521. </Grid>
  522. <ScrollViewer>
  523. <ItemsControl ItemsSource="{Binding Horizontal}">
  524. <ItemsControl.ItemTemplate>
  525. <DataTemplate>
  526. <Grid
  527. Width="{Binding $parent[StackPanel].Width}"
  528. HorizontalAlignment="Center"
  529. VerticalAlignment="Top"
  530. ColumnDefinitions="62,140,120,0.5*,0.3*,0.5*">
  531. <TextBlock
  532. HorizontalAlignment="Center"
  533. VerticalAlignment="Center"
  534. Text="{Binding Index}" />
  535. <ComboBox
  536. Grid.Column="1"
  537. ItemsSource="{Binding Source={x:Static vm:ShakerConfigViewModel.Instance}, Path=AOs}"
  538. SelectedValue="{Binding Value.Channel}" />
  539. <ComboBox
  540. Grid.Column="2"
  541. ItemsSource="{Binding Source={x:Static shakermodel:Polarity.Positive}, Converter={x:Static convert:EnumToCollectionConverter.Instance}, Mode=OneTime}"
  542. SelectedValue="{Binding Path=Value.Polarity}"
  543. SelectedValueBinding="{Binding Value}">
  544. <ComboBox.ItemTemplate>
  545. <DataTemplate>
  546. <TextBlock Text="{ivm:ResourceBinding Key}" />
  547. </DataTemplate>
  548. </ComboBox.ItemTemplate>
  549. </ComboBox>
  550. <NumericUpDown
  551. Grid.Column="3"
  552. Margin="4,0,4,0"
  553. Increment="0.001"
  554. Maximum="{Binding Value.MaxBias}"
  555. Minimum="{Binding Value.MinBias}"
  556. Value="{Binding Value.Bias}" />
  557. <ToggleSwitch
  558. Grid.Column="4"
  559. HorizontalAlignment="Center"
  560. VerticalAlignment="Center"
  561. IsChecked="{Binding Value.OpenLoop}" />
  562. <NumericUpDown
  563. Grid.Column="5"
  564. Margin="4,0,4,0"
  565. Increment="0.001"
  566. IsEnabled="{Binding Value.OpenLoop}"
  567. Maximum="{Binding Value.MaxOpenLoopDriver}"
  568. Minimum="{Binding Value.MinOpenLoopDriver}"
  569. Value="{Binding Value.OpenLoopDriver}" />
  570. </Grid>
  571. </DataTemplate>
  572. </ItemsControl.ItemTemplate>
  573. </ItemsControl>
  574. </ScrollViewer>
  575. </StackPanel>
  576. </suki:GroupBox>
  577. </suki:GlassCard>
  578. <suki:GlassCard
  579. Grid.Row="0"
  580. Grid.Column="1"
  581. Margin="0,10,10,10">
  582. <suki:GroupBox Header="{DynamicResource Balancing}">
  583. <StackPanel
  584. Width="200"
  585. HorizontalAlignment="Left"
  586. VerticalAlignment="Top"
  587. Orientation="Vertical">
  588. <Grid
  589. Width="{Binding $parent[StackPanel].Width}"
  590. HorizontalAlignment="Center"
  591. VerticalAlignment="Top"
  592. ColumnDefinitions="60,140">
  593. <TextBlock
  594. HorizontalAlignment="Center"
  595. VerticalAlignment="Center"
  596. Text="{DynamicResource ServoValveIndex}" />
  597. <TextBlock
  598. Grid.Column="1"
  599. HorizontalAlignment="Center"
  600. VerticalAlignment="Center"
  601. Text="{DynamicResource Channel}" />
  602. </Grid>
  603. <ScrollViewer>
  604. <ItemsControl ItemsSource="{Binding Balancing}">
  605. <ItemsControl.ItemTemplate>
  606. <DataTemplate>
  607. <Grid
  608. Width="{Binding $parent[StackPanel].Width}"
  609. HorizontalAlignment="Center"
  610. VerticalAlignment="Top"
  611. ColumnDefinitions="60,140">
  612. <TextBlock
  613. HorizontalAlignment="Center"
  614. VerticalAlignment="Center"
  615. Text="{Binding Index}" />
  616. <ComboBox
  617. Grid.Column="1"
  618. ItemsSource="{Binding Source={x:Static vm:ShakerConfigViewModel.Instance}, Path=AOs}"
  619. SelectedValue="{Binding Value}" />
  620. </Grid>
  621. </DataTemplate>
  622. </ItemsControl.ItemTemplate>
  623. </ItemsControl>
  624. </ScrollViewer>
  625. </StackPanel>
  626. </suki:GroupBox>
  627. </suki:GlassCard>
  628. </Grid>
  629. </ScrollViewer>
  630. </TabItem>
  631. </TabControl>
  632. </UserControl>