teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

9

イメージ図追加

2018/07/19 08:13

投稿

BluOxy
BluOxy

スコア2663

title CHANGED
File without changes
body CHANGED
@@ -2,7 +2,11 @@
2
2
  ViewModel側でプロパティを定義し、
3
3
  View側で表示するUserControlをプロパティの状態によって変えようと考えています。
4
4
 
5
+ ペイントで書いた超雑な絵ですがイメージ図
5
6
 
7
+ ![イメージ説明](bd7304aaee30bc49dcc255b17f599569.png)
8
+
9
+
6
10
  ###試してみたこと①
7
11
  複数のUserControlを同一箇所にソース上で記載し、
8
12
  - 表示するUserControlのVisibillityをVisible

8

やりたいこと欄の文章を微修正

2018/07/19 08:12

投稿

BluOxy
BluOxy

スコア2663

title CHANGED
File without changes
body CHANGED
@@ -35,7 +35,8 @@
35
35
  この実装では、Aに割り当てられているhogeのUserControlが表示されました。
36
36
 
37
37
  ###やりたいこと
38
+ ノリとしては、試してみたこと②に記載したソース内に書かれている
38
- ノリとしては、`"{StaticResource A}"`の`A`の部分をBindingして、ViewModelから
39
+ `"{StaticResource A}"`の`A`の部分をBindingして、ViewModelから
39
40
  表示を決められる様にしたいです。
40
41
 
41
42
  何か思いつきがありましたらご教授ください。

7

見出しが小さかったので大きくした

2018/07/19 07:46

投稿

BluOxy
BluOxy

スコア2663

title CHANGED
File without changes
body CHANGED
@@ -1,9 +1,9 @@
1
- ####最初に
1
+ ###最初に
2
2
  ViewModel側でプロパティを定義し、
3
3
  View側で表示するUserControlをプロパティの状態によって変えようと考えています。
4
4
 
5
5
 
6
- ####試してみたこと①
6
+ ###試してみたこと①
7
7
  複数のUserControlを同一箇所にソース上で記載し、
8
8
  - 表示するUserControlのVisibillityをVisible
9
9
  - 表示しないUserControlのVisibillityをCollapsed
@@ -11,7 +11,7 @@
11
11
  にすることで要素の領域を取らない形にすれば、UserControlの切り替えは可能ですが
12
12
  もっとうまいやり方があるのかな…と
13
13
 
14
- ####試してみたこと②
14
+ ###試してみたこと②
15
15
  とりあえず行き当たりばったりで調べて以下のようなソースになりました。
16
16
 
17
17
  ```XAML
@@ -34,7 +34,7 @@
34
34
 
35
35
  この実装では、Aに割り当てられているhogeのUserControlが表示されました。
36
36
 
37
- ####やりたいこと
37
+ ###やりたいこと
38
38
  ノリとしては、`"{StaticResource A}"`の`A`の部分をBindingして、ViewModelから
39
39
  表示を決められる様にしたいです。
40
40
 

6

Visibillityを使った実装方法については「試してみたこと①」に記載し、文法を改善した。

2018/07/19 07:45

投稿

BluOxy
BluOxy

スコア2663

title CHANGED
File without changes
body CHANGED
@@ -1,12 +1,17 @@
1
- ####
1
+ ####最初に
2
2
  ViewModel側でプロパティを定義し、
3
3
  View側で表示するUserControlをプロパティの状態によって変えようと考えています。
4
4
 
5
+
6
+ ####試してみたこと①
7
+ 複数のUserControlを同一箇所にソース上で記載し、
5
- UserControlのVisibillityを表示するUserControl以外
8
+ - 表示するUserControlのVisibillityをVisible
9
+ - 表示しないUserControlのVisibillityをCollapsed
10
+
6
- VisibillityをCollapsedしてあげ方法も一応実現は可能ですが
11
+ こと要素の領域を取らない形にすれば、UserControlの切り替えは可能ですが
7
12
  もっとうまいやり方があるのかな…と
8
13
 
9
- ####試してみたこと
14
+ ####試してみたこと
10
15
  とりあえず行き当たりばったりで調べて以下のようなソースになりました。
11
16
 
12
17
  ```XAML

5

誤字

2018/07/19 07:44

投稿

BluOxy
BluOxy

スコア2663

title CHANGED
File without changes
body CHANGED
@@ -3,7 +3,7 @@
3
3
  View側で表示するUserControlをプロパティの状態によって変えようと考えています。
4
4
 
5
5
  UserControlのVisibillityを表示するUserControl以外の
6
- VisibillityをCollapsedに方法でも一応実現は可能ですが、
6
+ VisibillityをCollapsedにしてあげる方法でも一応実現は可能ですが、
7
7
  もっとうまいやり方があるのかな…と
8
8
 
9
9
  ####試してみたこと

4

文法の修正

2018/07/19 05:03

投稿

BluOxy
BluOxy

スコア2663

title CHANGED
File without changes
body CHANGED
@@ -2,7 +2,8 @@
2
2
  ViewModel側でプロパティを定義し、
3
3
  View側で表示するUserControlをプロパティの状態によって変えようと考えています。
4
4
 
5
+ UserControlのVisibillityを表示するUserControl以外の
5
- UserControlのVisibillityをCollapsedにして重ねて定義しても実現は可能ですが、
6
+ VisibillityをCollapsedに方法で一応実現は可能ですが、
6
7
  もっとうまいやり方があるのかな…と
7
8
 
8
9
  ####試してみたこと

3

質問の仕方を変えた

2018/07/19 05:02

投稿

BluOxy
BluOxy

スコア2663

title CHANGED
@@ -1,1 +1,1 @@
1
- 2つのViewModelの組み合わせによって異なる1つのViewを表示したい
1
+ 表示するUserControlをプロパティによって切り替えたい
body CHANGED
@@ -1,40 +1,36 @@
1
- ####知りたいこと
1
+ ####
2
+ ViewModel側でプロパティを定義し、
2
- 0. 親ViewModelは子ViewModelが2つ定義されています。
3
+ View側表示するUserControlをプロパティ状態によっ変えようと考えています。
3
4
 
4
- 0. 親ViewModelはModelからあらかじめ子ViewModelの中身をもらいま
5
+ UserControlVisibillityCollapsedにして重ねて定義して実現は可能でが、
5
- (状況によってViewModelの型はちまち)
6
+ っとうまいやり方があるのかな…と
6
7
 
8
+ ####試してみたこと
7
- 0. 親Viewの表示時、子Viewを以下のような組み合わせよって表示したいです
9
+ とりあえず行き当たりばったりで調べて以下のようなソースなりました
8
- - 1つ目の子のViewModelの型が”A”、2つ目が”B”なら、XXXのView
9
- - 1つ目の子のViewModelの型が”C”、2つ目が”D”なら、YYYのView
10
10
 
11
- ####やってみたこと
12
- ViewModelとModelが1:1のときは、
13
- 以下の実装でうまくいきます。
14
- ```Xaml
11
+ ```XAML
15
- <!-- -->
12
+ <!--略-->
16
13
  <UserControl.Resources>
17
- <DataTemplate DataType="{x:Type 子ViewModelの型}">
14
+ <DataTemplate x:Key="A">
18
- <子View/>
15
+ <controls:hoge />
19
16
  </DataTemplate>
20
- <DataTemplate DataType="{x:Type 子ViewModelの型2}">
17
+ <DataTemplate x:Key="B">
21
- <子View2/>
18
+ <controls:fuga/>
22
19
  </DataTemplate>
23
- <DataTemplate DataType="{x:Type 子ViewModelの型3}">
20
+ <DataTemplate x:Key="C">
24
- <子View3/>
21
+ <controls:piyo />
25
22
  </DataTemplate>
26
23
  </UserControl.Resources>
24
+
27
- <ContentControl Content="{Binding 子ViewModel}" />
25
+ <UserControl ContentTemplate="{StaticResource A}" Content="{Binding}"/>
28
- <!-- -->
26
+ <!--略-->
29
27
  ```
30
28
 
31
- ###最後に
32
- 実現方法がいまいちわからないので、
33
- ViewModelの2つの型の組み合わせを別プロパティに割り当てて
34
- プロパティよっ表示するViewを変えようと考えていま
29
+ 実装では、A割り当られているhogeのUserControlが表示されした
35
30
 
31
+ ####やりたいこと
32
+ ノリとしては、`"{StaticResource A}"`の`A`の部分をBindingして、ViewModelから
36
- 手短伝えてまいましが、
33
+ 表示を決められる様にしたいです。
37
- 質問の解決に必要な情報がありましたら質問してください。
38
34
 
39
- また、実装方法について何か思いつきがありましたらご教授ください。
35
+ 何か思いつきがありましたらご教授ください。
40
36
  よろしくお願いします。

2

やりたいこと⇒最後に に文言を変更

2018/07/19 04:59

投稿

BluOxy
BluOxy

スコア2663

title CHANGED
File without changes
body CHANGED
@@ -28,7 +28,7 @@
28
28
  <!-- 略 -->
29
29
  ```
30
30
 
31
- ####やりたいこと
31
+ ###最後に
32
32
  実現方法がいまいちわからないので、
33
33
  ViewModelの2つの型の組み合わせを別プロパティに割り当てて
34
34
  そのプロパティによって表示するViewを変えようと考えています。

1

やりたいこと修正

2018/07/18 12:04

投稿

BluOxy
BluOxy

スコア2663

title CHANGED
File without changes
body CHANGED
@@ -29,11 +29,12 @@
29
29
  ```
30
30
 
31
31
  ####やりたいこと
32
+ 実現方法がいまいちわからないので、
32
33
  ViewModelの2つの型の組み合わせを別プロパティに割り当てて
33
- そのプロパティによって表示するViewを変えす。
34
+ そのプロパティによって表示するViewを変えようと考えてす。
34
35
 
35
36
  手短に伝えてしまいましたが、
36
- 必要な情報がありましたら質問してください。
37
+ 質問の解決に必要な情報がありましたら質問してください。
37
38
 
38
39
  また、実装方法について何か思いつきがありましたらご教授ください。
39
40
  よろしくお願いします。