WPFを使用しています。
ラベルが空でないときにボタンを表示したい。Labelに値がある場合、ボタンは非表示になります。
WPFでこれを行うにはどうすればよいですか?<Style>
?を使用する
コード:
<Label Name="lblCustomerName"/>
<Button Name="btnCustomer" Content="X" Visibility="Hidden" />
試す
if (string.IsNullOrEmpty(lblCustomerName.Text)) {
btnCustomer.Visibility = Visibility.Hidden;
}
else {
btnCustomer.Visibility = Visibility.Visible;
}
コンバーターを使用して、lblCustomerのコンテンツにバインドする必要があります。
public class ContentNullToVisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value == null)
{
return Visibility.Hidden;
}
return Visibility.Visible;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
コンバーターの詳細はこちら。
次に、xamlで次の操作を実行できます。
最初の行は、上記のクラスを作成した名前空間で修飾する必要があるリソースで定義する必要があります。リソースを定義したら、2番目の部分を使用できます。
<ContentNullToVisibilityConverter x:Key="visConverter"/>
<Label Name="lblCustomerName"/>
<Button Name="btnCustomer" Content="X" Visibility="{Binding ElementName=lblCustomer, Path=Content, Converter={StaticResource visConverter}}" />