本記事では、C# WPFアプリケーションにて ListBoxで右上の警告マーク( 黄色いビックリ ) を消す方法を書きます。
ListBoxのd:ItemSource プロパティにx:Null を設定するのが一番よいと思いました。
- Windows10
- Microsoft Visual Studio Community2022
- .NET 6
- WPF アプリ
ListBoxに警告が発生するとき
WPFアプリケーションでListBoxを使用していると、Xamlのデザイン上でListBoxに警告マークが表示されました。
ListBox に警告の原因
警告マークを押すと「推奨事項→サンプルデータ表示」と出ました。
ちょっと押しにくいです。デザイナで警告の部分を拡大すると押しやすいです。
サンプルデータを消してしまったのがまずいのでしょうか?
ツールボックスからListBoxを持ってきたときデフォルトでSampleDataはありました。いらなかったので消してしまいました。そうすると警告が出たようです。
ListBox の警告を消す方法
x:Null を設定
<Window x:Class="ListBoxProject.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:ListBoxProject"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="500">
<Grid>
<ListBox x:Name="listBox" VerticalAlignment="Top" HorizontalAlignment="Left" Width="300" Height="200" Margin="40,40,0,0" d:ItemsSource="{x:Null}"/>
</Grid>
</Window>
d:ItemSource プロパティにx:Null 設定します。d:ItemSource には何らかの値を設定しないと警告が出るようで、Null設定が一番いいと思いました。
SampleDataを設定
<Window x:Class="ListBoxProject.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:ListBoxProject"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="500">
<Grid>
<ListBox d:ItemsSource="{d:SampleData ItemCount=0}" VerticalAlignment="Top" HorizontalAlignment="Left" Width="300" Height="200" Margin="40,40,0,0"/>
</Grid>
</Window>
d:ItemSource プロパティにd:SampleData プロパティを設定します。ツールボックスからListBoxを持ってきたときデフォルトでSampleDataはあります。サンプルデータを表示させたくなかったらItemCount=0 とするのがよいです。
Bindingを設定
<Window x:Class="ListBoxProject.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:ListBoxProject"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="500">
<Grid>
<ListBox x:Name="listBox" VerticalAlignment="Top" HorizontalAlignment="Left" Width="300" Height="200" Margin="40,40,0,0" d:ItemsSource="{Binding _listBox}"/>
</Grid>
</Window>
d:ItemSource プロパティにBinding を設定します。
ただし、この方法はBindingを使用しない場合は、不要なコードが存在することになるので、分かりにくくなります。警告対策としてBindingを使ったことを、コメントとして明記した方がよいです。
まとめ
C# WPFアプリケーションにて ListBoxで右上の警告マーク( 黄色いビックリ ) を消す方法を書きました。
ListBoxのd:ItemSource プロパティにd:ItemSource にx:Null プロパティを設定するのが一番よいと思いました。
コメント