回答編集履歴

2

見直しキャンペーン中

2023/08/12 15:26

投稿

TN8001
TN8001

スコア9326

test CHANGED
@@ -55,4 +55,4 @@
55
55
  くどいですが、ここからずれているように思います。
56
56
  これをしなければ`Command="{Binding ClickCommand}"`とするだけだったのに、わざわざややこしいことをしているように感じます。
57
57
 
58
- `DataTemplate`で`ViewModel`から`UserControl`を起こすのならわかるのですが、それぞれ何の関連もなく`ParentPageVM`・`ChildControlVM`・`GrandchildButtonVM`を作って嬉しい状況が思いつきません。
58
+ `DataTemplate`でViewModelから`UserControl`を起こすのならわかるのですが、それぞれ何の関連もなく`ParentPageVM`・`ChildControlVM`・`GrandchildButtonVM`を作って嬉しい状況が思いつきません。

1

見直しキャンペーン中

2023/07/23 09:13

投稿

TN8001
TN8001

スコア9326

test CHANGED
@@ -1,115 +1,58 @@
1
1
  あれこれやっていたらこれで動きました。
2
-
3
2
  `ElementName`だとうまくいかないようです(なんでかはわかりません)
4
3
 
5
-
6
-
7
- ```xaml
4
+ ```xml
8
-
9
5
  <Page
10
-
11
6
  x:Class="Questions300833.MainPage"
12
-
13
7
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
14
-
15
8
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
16
-
17
9
  xmlns:local="using:Questions300833"
18
-
19
10
  x:Name="Main_Page"
20
-
21
11
  Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
22
-
23
12
  <Page.DataContext>
24
-
25
13
  <local:ParentPageViewModel />
26
-
27
14
  </Page.DataContext>
28
-
29
15
  <Grid>
30
-
31
16
  <local:ChildControl Margin="5" OnClickCommand="{x:Bind ((local:ParentPageViewModel)Main_Page.DataContext).ClickCommand}" />
32
-
33
17
  </Grid>
34
-
35
18
  </Page>
36
-
37
19
  ```
38
20
 
39
-
40
-
41
- ```xaml
21
+ ```xml
42
-
43
22
  <UserControl
44
-
45
23
  x:Class="Questions300833.ChildControl"
46
-
47
24
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
48
-
49
25
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
50
-
51
26
  xmlns:local="using:Questions300833"
52
-
53
27
  x:Name="Child_Control">
54
-
55
28
  <UserControl.DataContext>
56
-
57
29
  <local:ChildControlViewModel />
58
-
59
30
  </UserControl.DataContext>
60
-
61
31
  <Grid>
62
-
63
32
  <Grid.RowDefinitions>
64
-
65
33
  <RowDefinition />
66
-
67
34
  <RowDefinition />
68
-
69
35
  </Grid.RowDefinitions>
70
-
71
36
  <Grid.ColumnDefinitions>
72
-
73
37
  <ColumnDefinition />
74
-
75
38
  <ColumnDefinition />
76
-
77
39
  </Grid.ColumnDefinitions>
78
-
79
40
  <local:GrandchildButton
80
-
81
41
  HorizontalAlignment="Stretch"
82
-
83
42
  VerticalAlignment="Stretch"
84
-
85
43
  Background="Blue"
86
-
87
44
  Command="{x:Bind ((local:ChildControl)Child_Control).OnClickCommand}" />
88
45
 
89
-
90
-
91
46
  <!-- 省略 -->
92
-
93
47
  </Grid>
94
-
95
48
  </UserControl>
96
-
97
49
  ```
98
-
99
-
100
50
 
101
51
  ---
102
52
 
103
-
104
-
105
53
  > 独自のViewModelを持つUserControl
106
54
 
107
-
108
-
109
55
  くどいですが、ここからずれているように思います。
110
-
111
56
  これをしなければ`Command="{Binding ClickCommand}"`とするだけだったのに、わざわざややこしいことをしているように感じます。
112
57
 
113
-
114
-
115
58
  `DataTemplate`で`ViewModel`から`UserControl`を起こすのならわかるのですが、それぞれ何の関連もなく`ParentPageVM`・`ChildControlVM`・`GrandchildButtonVM`を作って嬉しい状況が思いつきません。