質問編集履歴
4
最終の動作コードへ更新
title
CHANGED
File without changes
|
body
CHANGED
@@ -31,7 +31,7 @@
|
|
31
31
|
<ToolBar Margin="0,20,-0.333,0" Height="30">
|
32
32
|
<ToggleButton IsChecked="{Binding ShowMeoDataOnly, Mode=TwoWay}">
|
33
33
|
<ToggleButton.ContextMenu>
|
34
|
-
<ContextMenu
|
34
|
+
<ContextMenu DataContext="{StaticResource Proxy}" IsOpen="{Binding Data.ShowMeoDataOnly, Mode=TwoWay}">
|
35
35
|
<MenuItem Command="{Binding Source={StaticResource Proxy}, Path=Data.MyCommand}">
|
36
36
|
<MenuItem.Header>
|
37
37
|
<TextBlock Text="実行可能状態にする"/>
|
3
頂いた情報によるコード更新
title
CHANGED
File without changes
|
body
CHANGED
@@ -16,8 +16,11 @@
|
|
16
16
|
### 該当のソースコード
|
17
17
|
|
18
18
|
```xmal
|
19
|
+
<Window.Resources>
|
20
|
+
<local:BindingProxy x:Key="Proxy" Data="{Binding}" />
|
21
|
+
</Window.Resources>
|
19
22
|
|
20
|
-
|
23
|
+
<Grid>
|
21
24
|
<StackPanel>
|
22
25
|
<Menu x:Name="menu" HorizontalAlignment="Left" Height="24" VerticalAlignment="Top" Width="519" Margin="0,0,-0.333,0">
|
23
26
|
<MenuItem Header="ファイル">
|
@@ -28,18 +31,18 @@
|
|
28
31
|
<ToolBar Margin="0,20,-0.333,0" Height="30">
|
29
32
|
<ToggleButton IsChecked="{Binding ShowMeoDataOnly, Mode=TwoWay}">
|
30
33
|
<ToggleButton.ContextMenu>
|
34
|
+
<ContextMenu IsOpen="{Binding ShowMeoDataOnly, Mode=TwoWay}" PlacementTarget="{Binding RelativeSource={RelativeSource AncestorType=ToggleButton}}">
|
31
|
-
|
35
|
+
<MenuItem Command="{Binding Source={StaticResource Proxy}, Path=Data.MyCommand}">
|
32
|
-
<MenuItem>
|
33
36
|
<MenuItem.Header>
|
34
37
|
<TextBlock Text="実行可能状態にする"/>
|
35
38
|
</MenuItem.Header>
|
36
39
|
</MenuItem>
|
37
|
-
<MenuItem>
|
40
|
+
<MenuItem Command="{Binding Source={StaticResource Proxy}, Path=Data.MyCommand}">
|
38
41
|
<MenuItem.Header>
|
39
42
|
<TextBlock Text="移動する"/>
|
40
43
|
</MenuItem.Header>
|
41
44
|
</MenuItem>
|
42
|
-
<MenuItem>
|
45
|
+
<MenuItem Command="{Binding Source={StaticResource Proxy}, Path=Data.MyCommand}">
|
43
46
|
<MenuItem.Header>
|
44
47
|
<TextBlock Text="ファイルから呼び出す"/>
|
45
48
|
</MenuItem.Header>
|
@@ -51,6 +54,7 @@
|
|
51
54
|
<StackPanel>
|
52
55
|
<TextBlock Text="操作内容" VerticalAlignment="Center" />
|
53
56
|
</StackPanel>
|
57
|
+
<!--<Path Width="10" Height="5" Stretch="Fill" Fill="Black" Data="F1 M0,0 L10,0 L5,10 Z " />-->
|
54
58
|
<Border Width="8" />
|
55
59
|
</WrapPanel>
|
56
60
|
|
@@ -91,6 +95,30 @@
|
|
91
95
|
|
92
96
|
```
|
93
97
|
|
98
|
+
```BindingProxy
|
99
|
+
|
100
|
+
using System.Windows;
|
101
|
+
|
102
|
+
// BindingProxy.csを作成
|
103
|
+
|
104
|
+
public class BindingProxy : Freezable
|
105
|
+
{
|
106
|
+
protected override Freezable CreateInstanceCore()
|
107
|
+
{
|
108
|
+
return new BindingProxy();
|
109
|
+
}
|
110
|
+
|
111
|
+
public object Data
|
112
|
+
{
|
113
|
+
get { return (object)GetValue(DataProperty); }
|
114
|
+
set { SetValue(DataProperty, value); }
|
115
|
+
}
|
116
|
+
|
117
|
+
public static readonly DependencyProperty DataProperty =
|
118
|
+
DependencyProperty.Register("Data", typeof(object), typeof(BindingProxy), new UIPropertyMetadata(null));
|
119
|
+
}
|
120
|
+
```
|
121
|
+
|
94
122
|
### 試したこと
|
95
123
|
|
96
124
|
1)原因は、下記のURLに乗っている事だというところまでは突き止めたが、
|
2
ご指摘頂いた点、修正。・どのような手順を取るとどうなるようにしたいのか ・今はどうなるのか
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
[WPF][MVVM] ToggleButton
|
1
|
+
[WPF][MVVM] ToggleButtonを押した時ContextMenuを表示したい
|
body
CHANGED
@@ -2,6 +2,11 @@
|
|
2
2
|
|
3
3
|
こんばんは。
|
4
4
|
WPF + Visual Studio2015にてトグルボタンのメニューを作成中です。
|
5
|
+
|
6
|
+
トグルボタンを押した時に、展開してメニューが表示するようにしたいです。
|
7
|
+
今は、押しても何もメニューが展開されない状態です。
|
8
|
+
ViewModelでの、フラグの切り替えは出来ていますが、ContextMenuを展開するのにはどうしたら良いのかを調べています。
|
9
|
+
|
5
10
|
色々調べましたが、情報を探し出せなかった為、ご教授頂けますと幸いです。
|
6
11
|
|
7
12
|
### 発生している問題・エラーメッセージ
|
1
一部修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -46,7 +46,6 @@
|
|
46
46
|
<StackPanel>
|
47
47
|
<TextBlock Text="操作内容" VerticalAlignment="Center" />
|
48
48
|
</StackPanel>
|
49
|
-
<Path Width="10" Height="5" Stretch="Fill" Fill="Black" Data="F1 M0,0 L10,0 L5,10 Z " />
|
50
49
|
<Border Width="8" />
|
51
50
|
</WrapPanel>
|
52
51
|
|