質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

XAML

XAML(Extensible Application Markup Language)はWPF、Silverlight、Windows PhoneそしてWindows Store appsでユーザーインターフェースを定義するために使われるXML言語です。

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

Q&A

解決済

3回答

1388閲覧

ListView(GridView)でXAML側でアイテムを追加する方法は?

nekome4

総合スコア24

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

XAML

XAML(Extensible Application Markup Language)はWPF、Silverlight、Windows PhoneそしてWindows Store appsでユーザーインターフェースを定義するために使われるXML言語です。

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

0グッド

0クリップ

投稿2018/09/13 13:56

編集2018/09/14 12:02

C#コードでアイテムを追加する方法は探せばたくさん載っているのですが、XAMLで最初からアイテムが追加されている状態にする場合どのように記述したらよいのでしょうか?

アイテムの追加を以下のようにしか指定できずそれぞれのアイテムのカラムにhogeが設定されてしまいます。
デザイナから右クリックで「ListViewItemの追加」とあったのでそのままいれましたが使い方が間違っているのでしょうか?

以上ご教示よろしくお願いいたします。

XAML

1<ListView HorizontalAlignment="Left" Height="150" VerticalAlignment="Top" Width="496"> 2 <ListView.View > 3 <GridView> 4 <GridViewColumn Header="1" Width="100" /> 5 <GridViewColumn Header="2" Width="200" /> 6 <GridViewColumn Header="3" /> 7 </GridView> 8 </ListView.View> 9 <ListViewItem Content="hoge" /> 10 <ListViewItem Content="baz" /> 11  <ListViewItem Content="foo" /> 12</ListView>

#追記

現状の記述方法ですと以下のようになってしまい行が同じデータで埋まってしまいます。

1 2 3

hoge hoge hoge
baz baz baz
foo foo foo

こちらが期待している動作は以下のようになります。

1 2 3

hoge baz foo

TreeViewなどはタグの間にさらに同じタグ(ネスト)を設けることで子要素をいくつも含められるようになっていますが、ListViewItemで似たような記述をしようと思った場合にエラーとなってしまいます。

また、GridViewなのでボタンやチェックボックスではなくデータ(文字列、数値)を配置したいと思っています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

こんな感じですか?

XAML

1<Window x:Class="WpfApp1.MainWindow" 2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 4 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 5 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 6 xmlns:local="clr-namespace:WpfApp1" 7 mc:Ignorable="d" 8 Title="MainWindow" Height="450" Width="800"> 9 <Grid> 10 <Grid.Resources> 11 <XmlDataProvider x:Key="Items" XPath="Items"> 12 <x:XData> 13 <Items xmlns=""> 14 <Item Kind="Cat" Color="White" Name="Alice"/> 15 <Item Kind="Dog" Color="Black" Name="Bob"/> 16 <Item Kind="Snake" Color="Red" Name="Charley"/> 17 </Items> 18 </x:XData> 19 </XmlDataProvider> 20 </Grid.Resources> 21 <ListView HorizontalAlignment="Left" Height="150" VerticalAlignment="Top" Width="496" 22 ItemsSource="{Binding Source={StaticResource Items}, XPath=Item}"> 23 <ListView.View> 24 <GridView> 25 <GridViewColumn Header="Kind" Width="100" 26 DisplayMemberBinding="{Binding XPath=@Kind}"/> 27 <GridViewColumn Header="Color" Width="200" 28 DisplayMemberBinding="{Binding XPath=@Color}"/> 29 <GridViewColumn Header="Name" 30 DisplayMemberBinding="{Binding XPath=@Name}"/> 31 </GridView> 32 </ListView.View> 33 </ListView> 34 </Grid> 35</Window>

投稿2018/09/29 01:34

Zuishin

総合スコア28656

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nekome4

2018/10/05 16:16

求めていたのは上記内容です。 ありがとうございました。
guest

0

アイテムを横に並べたいのだと思いますが、こちらに参考になる質問と回答があります。
[WPF]リストビューのアイテムを横に並べたい

また、ListView.View要素に記述すべきは、1アイテム分の見せ方(1行分の見せ方)だと思います。
そこだけ抜粋すると次のような感じになります。

xaml

1 <ListView.View > 2 <GridView> 3 <GridViewColumn ...(省略) /> 4 </GridView> 5 </ListView.View>

なぜ1アイテム分だけ書けばいいかというと、ListViewが追加されたアイテムの分だけ記述を複製してくれるからだったと思います。

投稿2018/09/26 11:39

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nekome4

2018/09/29 00:44

ご返信ありがとうございます。 アイテムを横に並べたいのではなく、XAML上で各セルに内容を追加したいのです。
退会済みユーザー

退会済みユーザー

2018/09/29 02:46

なるほど。hoge, baz, fooはアイテムでなく、あるアイテムの属性ってことでしょうか。それだとZuishinさんの回答が、質問に沿うものだと思います。次のようにアイテムが縦に表示されるとおもいます。 アイテム1 アイテム1の属性A アイテム1の属性B アイテム1の属性C アイテム2 アイテム2の属性A アイテム2の属性B アイテム2の属性C アイテム3 アイテム3の属性A アイテム3の属性B アイテム3の属性C
nekome4

2018/10/05 16:16

ためしたところうまくいきました。
guest

0

やりたいことと、現状のずれが分かりません。

具体的に何をどういう風に追加したいのかにもよりますが、おっしゃっているやり方でいいと思います。

ただ、右クリックだとListViewItemしか配置できないので、標準で画面の右下あたりにある「プロパティ」の「共通」のところの「items(コレクション)」ってのの右にあるボタンから追加していくとチェックボックスとかボタンとかも画面で追加していけると思います。
(色々やってたら、プロパティウィンドウが消えてしまって再表示できなくなったので、操作手順を画面キャプチャのサンプルでお示しできません、すみません)

投稿2018/09/14 06:56

papinianus

総合スコア12705

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nekome4

2018/09/14 12:04 編集

質問に追記しましたのでよろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問