回答編集履歴
1
見直しキャンペーン中
answer
CHANGED
@@ -1,48 +1,48 @@
|
|
1
|
-
```
|
1
|
+
```xml
|
2
|
-
<TextBox Text="{Binding Contents, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
|
2
|
+
<TextBox Text="{Binding Contents, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
|
3
|
-
```
|
3
|
+
```
|
4
|
-
これで十分なら話は早いです。これだけで機能します。
|
4
|
+
これで十分なら話は早いです。これだけで機能します。
|
5
|
-
|
5
|
+
|
6
|
-
---
|
6
|
+
---
|
7
|
-
|
7
|
+
|
8
|
-
`PropertyChanged`にできない(したくない)場合は、タブの切り替え時に`TextBox`の`LostFocus`が呼ばれないようなので、無理やり呼ぶような感じでしょうか。
|
8
|
+
`PropertyChanged`にできない(したくない)場合は、タブの切り替え時に`TextBox`の`LostFocus`が呼ばれないようなので、無理やり呼ぶような感じでしょうか。
|
9
|
-
|
9
|
+
|
10
|
-
```
|
10
|
+
```cs
|
11
|
-
using System.Collections.ObjectModel;
|
11
|
+
using System.Collections.ObjectModel;
|
12
|
-
using System.ComponentModel;
|
12
|
+
using System.ComponentModel;
|
13
|
-
using System.Windows;
|
13
|
+
using System.Windows;
|
14
|
-
using System.Windows.Controls;
|
14
|
+
using System.Windows.Controls;
|
15
|
-
using System.Windows.Input;
|
15
|
+
using System.Windows.Input;
|
16
|
-
|
16
|
+
|
17
|
-
namespace Questions279056
|
17
|
+
namespace Questions279056
|
18
|
-
{
|
18
|
+
{
|
19
|
-
public partial class MainWindow : Window
|
19
|
+
public partial class MainWindow : Window
|
20
|
-
{
|
20
|
+
{
|
21
|
-
public ObservableCollection<TabItem> Tabs { get; set; } = new ObservableCollection<TabItem>();
|
21
|
+
public ObservableCollection<TabItem> Tabs { get; set; } = new ObservableCollection<TabItem>();
|
22
|
-
public MainWindow()
|
22
|
+
public MainWindow()
|
23
|
-
{
|
23
|
+
{
|
24
|
-
InitializeComponent();
|
24
|
+
InitializeComponent();
|
25
|
-
DataContext = Tabs;
|
25
|
+
DataContext = Tabs;
|
26
|
-
Tabs.Add(new TabItem { Header = "Tab1", Contents = "aaa" });
|
26
|
+
Tabs.Add(new TabItem { Header = "Tab1", Contents = "aaa" });
|
27
|
-
Tabs.Add(new TabItem { Header = "Tab2", Contents = "bbb" });
|
27
|
+
Tabs.Add(new TabItem { Header = "Tab2", Contents = "bbb" });
|
28
|
-
Tabs.Add(new TabItem { Header = "Tab3", Contents = "ccc" });
|
28
|
+
Tabs.Add(new TabItem { Header = "Tab3", Contents = "ccc" });
|
29
|
-
|
29
|
+
|
30
|
-
Tab.IsSynchronizedWithCurrentItem = true;
|
30
|
+
Tab.IsSynchronizedWithCurrentItem = true;
|
31
|
-
Tab.Items.CurrentChanging += Items_CurrentChanging;
|
31
|
+
Tab.Items.CurrentChanging += Items_CurrentChanging;
|
32
|
-
}
|
32
|
+
}
|
33
|
-
|
33
|
+
|
34
|
-
private void Items_CurrentChanging(object sender, CurrentChangingEventArgs e)
|
34
|
+
private void Items_CurrentChanging(object sender, CurrentChangingEventArgs e)
|
35
|
-
{
|
35
|
+
{
|
36
|
-
if(Keyboard.FocusedElement is TextBox textBox)
|
36
|
+
if(Keyboard.FocusedElement is TextBox textBox)
|
37
|
-
textBox.RaiseEvent(new RoutedEventArgs(LostFocusEvent));
|
37
|
+
textBox.RaiseEvent(new RoutedEventArgs(LostFocusEvent));
|
38
|
-
}
|
38
|
+
}
|
39
|
-
}
|
39
|
+
}
|
40
|
-
|
40
|
+
|
41
|
-
public class TabItem
|
41
|
+
public class TabItem
|
42
|
-
{
|
42
|
+
{
|
43
|
-
public string Header { get; set; }
|
43
|
+
public string Header { get; set; }
|
44
|
-
public string Contents { get; set; }
|
44
|
+
public string Contents { get; set; }
|
45
|
-
}
|
45
|
+
}
|
46
|
-
}
|
46
|
+
}
|
47
|
-
```
|
47
|
+
```
|
48
48
|
(もうちょっとましな方法がある気がする^^;
|