回答編集履歴

1

見直しキャンペーン中

2023/07/23 08:21

投稿

TN8001
TN8001

スコア9884

test CHANGED
@@ -1,93 +1,47 @@
1
1
  `XmlDataProvider`での書き方とごっちゃになっています。
2
2
 
3
-
4
-
5
3
  (上)xamlのほうを採用するなら、`XmlDataProvider`を使ってください。
6
-
7
4
  (下)コードのほうを採用するなら、`XPath`でなく`Path`(あるいは省略`"{Binding Name}"`)になります。
8
5
 
9
-
10
-
11
- ```xaml
6
+ ```xml
12
-
13
7
  <Window
14
-
15
8
  x:Class="Questions299871.MainWindow"
16
-
17
9
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
18
-
19
10
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
20
-
21
11
  Width="800"
22
-
23
12
  Height="450">
24
-
25
13
  <Grid Margin="10">
26
-
27
14
  <Grid.RowDefinitions>
28
-
29
15
  <RowDefinition />
30
-
31
16
  <RowDefinition />
32
-
33
17
  </Grid.RowDefinitions>
34
18
 
35
-
36
-
37
19
  <!-- XmlDataProvider -->
38
-
39
20
  <DataGrid AutoGenerateColumns="False" ItemsSource="{Binding XPath=/Products/Product}">
40
-
41
21
  <DataGrid.DataContext>
42
-
43
22
  <!--
44
-
45
23
  Practice.xmlのプロパティ
46
-
47
24
  ビルドアクション:Resource だとこっちは読めるが↓のDataGridは読めない
48
-
49
25
  ビルドアクション:コンテンツ&コピーする だと両方読めた
50
-
51
26
  -->
52
-
53
27
  <XmlDataProvider Source="Practice.xml" />
54
-
55
28
  </DataGrid.DataContext>
56
-
57
29
  <DataGrid.Columns>
58
-
59
30
  <DataGridTextColumn Binding="{Binding XPath=@Name}" Header="Name" />
60
-
61
31
  <DataGridTextColumn Binding="{Binding XPath=@Category}" Header="Category" />
62
-
63
32
  </DataGrid.Columns>
64
-
65
33
  </DataGrid>
66
34
 
67
-
68
-
69
35
  <!-- DataView -->
70
-
71
36
  <DataGrid
72
-
73
37
  x:Name="dataGrid"
74
-
75
38
  Grid.Row="1"
76
-
77
39
  AutoGenerateColumns="False">
78
-
79
40
  <DataGrid.Columns>
80
-
81
41
  <DataGridTextColumn Binding="{Binding Path=Name}" Header="Name" />
82
-
83
42
  <DataGridTextColumn Binding="{Binding Path=Category}" Header="Category" />
84
-
85
43
  </DataGrid.Columns>
86
-
87
44
  </DataGrid>
88
-
89
45
  </Grid>
90
-
91
46
  </Window>
92
-
93
47
  ```