Не отображать кнопку, если какое-либо значение существует в количестве - PullRequest
0 голосов
/ 10 августа 2011

Цель:
Кнопка с именем «btnReturn» не должна отображаться, если значение количества равно 0 и минус.

Проблема:
Рассмотрели много, и я не могу найти решение, чтобы кнопка не была невидимой. Это может быть код XAML или C #.

Пожалуйста, помните, что у вас есть много продуктов для отображения, и я также использовал datacontext для синхронизации между XAML и списком.

private void UpdateGUI(int pSaleId)
{
    lstRepurchase.DataContext = _myManagerProduct_SaleAndProductQuantity.DisplaySoldProductInTheRepurchaseListView(pSaleId);
}
<ListView  Canvas.Left="8" Canvas.Top="49.494" ItemsSource="{Binding}" SelectionMode="Single" Margin="236.78,17.48,8,44.707" Name="lstRepurchase">
        <ListView.View>
            <GridView>
                <GridViewColumn Header="Article Number" Width="auto" DisplayMemberBinding="{Binding Path=_articleNumber}" TextBlock.TextAlignment="Left" />                                  
                <GridViewColumn Header="Name" Width="auto" DisplayMemberBinding="{Binding Path=_name}" TextBlock.TextAlignment="Left" />
                <GridViewColumn Header="Quantity" Width="auto" DisplayMemberBinding="{Binding Path=_quantity}" TextBlock.TextAlignment="Left" />                                            
                <GridViewColumn>
                    <GridViewColumn.CellTemplate>
                        <DataTemplate>
                            <Button Name="btnReturn" MinHeight="20" MinWidth="50" Content="Delete" Click="btnReturn_Click" />
                        </DataTemplate>
                    </GridViewColumn.CellTemplate>
                </GridViewColumn>
            </GridView>
        </ListView.View>
    </ListView> 

Ответы [ 5 ]

0 голосов
/ 10 августа 2011

Не изобретай велосипед.Конвертер Boolean to Visibility встроен в WPF:

http://msdn.microsoft.com/en-us/library/system.windows.controls.booleantovisibilityconverter.aspx

0 голосов
/ 10 августа 2011

Вот конвертер для Int32 в Visability. Теперь синтаксис для передачи счетчика в преобразование может потребоваться привязать к ItemSource для счетчика.

    [ValueConversion(typeof(Int32), typeof(Visibility))]
    public class IntVisabilityConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            Int32 inCount = (Int32)value;
            if (inCount > 0) return Visibility.Visible;
            else return Visibility.Collapsed;
        }
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            return true;
        }
    }

XAML

    <xmlns:local="clr-namespace:yourNameSpace"        
    <local:VisabilityConverter x:Key="visabilityConverter"/>
    Visibility="{Binding Path=Count, Converter={StaticResource visabilityConverter}

Вам нужно будет прочитать, куда идут эти строки, но все они в XAML.

0 голосов
/ 10 августа 2011

Рассмотрите возможность использования преобразователя Boolean-to-Visibility, см. Пример настраиваемого и гибкого преобразователя здесь - BooleanToVisibilityConverter by Kent Boogaart . Или используйте встроенный BooleanToVisibilityConverter Class

1) Определить логическое свойство как

public bool IsQuantityGreaterThenZero
{
  get
  {  
      return this.quantity > 0;
  }
}

2) Обновить определение кнопки в XAML, чтобы использовать привязку с преобразователем на месте:

<Button Visibility="{Binding IsQuantityGreaterThenZero,
        Converter={StaticResource yourConverter}}"/>
0 голосов
/ 10 августа 2011

Таким образом, вы хотите, чтобы кнопка изменила видимость, когда «количество» равно нулю или меньше. Попробуйте поиграться со свойством кнопки видимости или видимости. Этот код C # сделает кнопку Windows Form невидимой:

if(quantity <=0)
    btnReturn.Visibile = false;
0 голосов
/ 10 августа 2011

Вам нужно будет связать свойство Visibility со свойством _quantity и использовать конвертер, который принимает количество и возвращает видимость.

Вот некоторая информация о конвертерах:

http://www.codeproject.com/KB/WPF/OppositeBoolConverter.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...