ListViewのカスタムセルには、次のXAMLがあります(簡単な例で説明します)。Xamarin Forms ListViewセル内の空白行を非表示にする
<ListView x:Name="___drives" HasUnevenRows="True">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout>
<Label Text="{Binding Address}" FontAttributes="Bold" />
<Label Text="{Binding Scheduled}" />
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
コードビハインドでは、ドライブオブジェクトのObervableCollectionをListViewにバインドしています。 Driveオブジェクトは以下のように定義されています。 INotifyPropertyChangedインタフェースを実装しているModelBaseを拡張しています(詳細は示されていませんが、定型文です)。
public class Drive : ModelBase
{
private string _address;
private string _scheduled;
public string Address
{
get { return _address; }
set { if (_address != value) { _address = value; OnPropertyChanged("Address"); } }
}
public string Scheduled
{
get { return _scheduled; }
set { if (_scheduled != value) { _scheduled = value; OnPropertyChanged("Scheduled"); } }
}
}
時には、スケジューリングがnullです。値がnullの場合、ViewCellにScheduledプロパティの空白行が表示されないようにする方法はありますか?
スケジューリングされた値がない場合(以下のフィールドが含まれていますが、そのアイデアが得られた場合)のイメージは次のとおりです。私は空白の線を表示するために赤いボックスを描きました。私はDistanceToMeを上に移動して、空白行のスペースを取るようにします。
空白行の代わりに何をしたいですか? 'value'が' null'であるかどうかを単に確認することはできませんでした。もしそうなら '_scheduled'をあなたの特定のケースで賢明なものに設定しますか? – Demitrian
いいえ空白行が表示されないようにディスプレイを折りたたみたい。私は達成する必要があることを示すために質問を更新しました。 –
ラベルにIsVisibleプロパティを使用できます(使用可能な場合)。私はそれがボタン用であることを知っています。使用可能な場合は、Schedualedがnullの場合にfalseに設定されたViewModelのbooleanプロパティを持つことができます。例:http://stackoverflow.com/a/33751434/6198927 –