回答編集履歴
2
見直しキャンペーン中
answer
CHANGED
@@ -55,4 +55,4 @@
|
|
55
55
|
くどいですが、ここからずれているように思います。
|
56
56
|
これをしなければ`Command="{Binding ClickCommand}"`とするだけだったのに、わざわざややこしいことをしているように感じます。
|
57
57
|
|
58
|
-
`DataTemplate`で
|
58
|
+
`DataTemplate`でViewModelから`UserControl`を起こすのならわかるのですが、それぞれ何の関連もなく`ParentPageVM`・`ChildControlVM`・`GrandchildButtonVM`を作って嬉しい状況が思いつきません。
|
1
見直しキャンペーン中
answer
CHANGED
@@ -1,58 +1,58 @@
|
|
1
|
-
あれこれやっていたらこれで動きました。
|
2
|
-
`ElementName`だとうまくいかないようです(なんでかはわかりません)
|
3
|
-
|
4
|
-
```
|
5
|
-
<Page
|
6
|
-
x:Class="Questions300833.MainPage"
|
7
|
-
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
8
|
-
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
9
|
-
xmlns:local="using:Questions300833"
|
10
|
-
x:Name="Main_Page"
|
11
|
-
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
|
12
|
-
<Page.DataContext>
|
13
|
-
<local:ParentPageViewModel />
|
14
|
-
</Page.DataContext>
|
15
|
-
<Grid>
|
16
|
-
<local:ChildControl Margin="5" OnClickCommand="{x:Bind ((local:ParentPageViewModel)Main_Page.DataContext).ClickCommand}" />
|
17
|
-
</Grid>
|
18
|
-
</Page>
|
19
|
-
```
|
20
|
-
|
21
|
-
```
|
22
|
-
<UserControl
|
23
|
-
x:Class="Questions300833.ChildControl"
|
24
|
-
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
25
|
-
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
26
|
-
xmlns:local="using:Questions300833"
|
27
|
-
x:Name="Child_Control">
|
28
|
-
<UserControl.DataContext>
|
29
|
-
<local:ChildControlViewModel />
|
30
|
-
</UserControl.DataContext>
|
31
|
-
<Grid>
|
32
|
-
<Grid.RowDefinitions>
|
33
|
-
<RowDefinition />
|
34
|
-
<RowDefinition />
|
35
|
-
</Grid.RowDefinitions>
|
36
|
-
<Grid.ColumnDefinitions>
|
37
|
-
<ColumnDefinition />
|
38
|
-
<ColumnDefinition />
|
39
|
-
</Grid.ColumnDefinitions>
|
40
|
-
<local:GrandchildButton
|
41
|
-
HorizontalAlignment="Stretch"
|
42
|
-
VerticalAlignment="Stretch"
|
43
|
-
Background="Blue"
|
44
|
-
Command="{x:Bind ((local:ChildControl)Child_Control).OnClickCommand}" />
|
45
|
-
|
46
|
-
<!-- 省略 -->
|
47
|
-
</Grid>
|
48
|
-
</UserControl>
|
49
|
-
```
|
50
|
-
|
51
|
-
---
|
52
|
-
|
53
|
-
> 独自のViewModelを持つUserControl
|
54
|
-
|
55
|
-
くどいですが、ここからずれているように思います。
|
56
|
-
これをしなければ`Command="{Binding ClickCommand}"`とするだけだったのに、わざわざややこしいことをしているように感じます。
|
57
|
-
|
1
|
+
あれこれやっていたらこれで動きました。
|
2
|
+
`ElementName`だとうまくいかないようです(なんでかはわかりません)
|
3
|
+
|
4
|
+
```xml
|
5
|
+
<Page
|
6
|
+
x:Class="Questions300833.MainPage"
|
7
|
+
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
8
|
+
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
9
|
+
xmlns:local="using:Questions300833"
|
10
|
+
x:Name="Main_Page"
|
11
|
+
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
|
12
|
+
<Page.DataContext>
|
13
|
+
<local:ParentPageViewModel />
|
14
|
+
</Page.DataContext>
|
15
|
+
<Grid>
|
16
|
+
<local:ChildControl Margin="5" OnClickCommand="{x:Bind ((local:ParentPageViewModel)Main_Page.DataContext).ClickCommand}" />
|
17
|
+
</Grid>
|
18
|
+
</Page>
|
19
|
+
```
|
20
|
+
|
21
|
+
```xml
|
22
|
+
<UserControl
|
23
|
+
x:Class="Questions300833.ChildControl"
|
24
|
+
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
25
|
+
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
26
|
+
xmlns:local="using:Questions300833"
|
27
|
+
x:Name="Child_Control">
|
28
|
+
<UserControl.DataContext>
|
29
|
+
<local:ChildControlViewModel />
|
30
|
+
</UserControl.DataContext>
|
31
|
+
<Grid>
|
32
|
+
<Grid.RowDefinitions>
|
33
|
+
<RowDefinition />
|
34
|
+
<RowDefinition />
|
35
|
+
</Grid.RowDefinitions>
|
36
|
+
<Grid.ColumnDefinitions>
|
37
|
+
<ColumnDefinition />
|
38
|
+
<ColumnDefinition />
|
39
|
+
</Grid.ColumnDefinitions>
|
40
|
+
<local:GrandchildButton
|
41
|
+
HorizontalAlignment="Stretch"
|
42
|
+
VerticalAlignment="Stretch"
|
43
|
+
Background="Blue"
|
44
|
+
Command="{x:Bind ((local:ChildControl)Child_Control).OnClickCommand}" />
|
45
|
+
|
46
|
+
<!-- 省略 -->
|
47
|
+
</Grid>
|
48
|
+
</UserControl>
|
49
|
+
```
|
50
|
+
|
51
|
+
---
|
52
|
+
|
53
|
+
> 独自のViewModelを持つUserControl
|
54
|
+
|
55
|
+
くどいですが、ここからずれているように思います。
|
56
|
+
これをしなければ`Command="{Binding ClickCommand}"`とするだけだったのに、わざわざややこしいことをしているように感じます。
|
57
|
+
|
58
58
|
`DataTemplate`で`ViewModel`から`UserControl`を起こすのならわかるのですが、それぞれ何の関連もなく`ParentPageVM`・`ChildControlVM`・`GrandchildButtonVM`を作って嬉しい状況が思いつきません。
|