【C# WPF ListBox】右上の警告(黄色いビックリ)を消す

本記事では、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 プロパティを設定するのが一番よいと思いました

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次