简体   繁体   English

在xaml MVVM模式中绑定进度条

[英]Binding Progressbar in xaml MVVM Pattern

I am trying to implement a progress bar such that when I click on a search button, I need it to pop up. 我正在尝试实现一个进度条,以便当我单击搜索按钮时,我需要它弹出。 This is what I wrote, but for some reasons it shows up all the time. 这是我写的,但是由于某些原因,它一直显示。 Any reply will be very appreciated. 任何答复将不胜感激。

The following is what I have in the xaml document: 以下是xaml文档中的内容:

<ProgressBar Name="searchProgressBar" IsIndeterminate="True" Width="200" Margin="10,10,0,0" Visibility="{Binding IsSearchbarVisible, UpdateSourceTrigger=PropertyChanged}"/>

And this is what I have in the VM.cs class: 这就是我在VM.cs类中所拥有的:

private Visibility isSearchBarVisible = Visibility.Collapsed;
public Visibility IsSearchBarVisible
{
    get { return isSearchBarVisible; }
    set
    {
        isSearchBarVisible = value;
        OnPropertyChanged("IsSearchBarVisible");
    }
}

public ICommand OrderSearch
{
    get
    {
        if (_orderSearch == null)
        {
            _orderSearch = new RelayCommand(param =>
            {
                IsSearchBarVisible = Visibility.Visible;
                Console.WriteLine(isSearchBarVisible);
                int orderID;
                if(Int32.TryParse(param.ToString(), out orderID))
                    ShowMainOrderDetails(orderID);

                IsSearchBarVisible = Visibility.Collapsed;
                Console.WriteLine(isSearchBarVisible);
            });
        }
        return _orderSearch;
    }
}

绑定是xaml IsSearchbarVisible(b小)和视图模型IsSearchBarVisible(B是大写)中的问题

Please try this: 请尝试以下方法:

private ICommand _onOrderSearchClickCommand;
public ICommand OnOrderSearchClickCommand
{
    get
    {
        if (_onOrderSearchClickCommand != null) return _onOrderSearchClickCommand;
            _onOrderSearchClickCommand = new RelayCommand(OrderSearchButtonClick);
        return _onOrderSearchClickCommand;
    }
}
public void OrderSearchClick(object sender)
{
    IsSearchBarVisible = Visibility.Visible;
    Console.WriteLine(isSearchBarVisible);
    int orderID;
    if(Int32.TryParse(param.ToString(), out orderID))
        ShowMainOrderDetails(orderID);
}

And in the end of your method ShowMainOrderDetails(orderID) add in the end 然后在方法ShowMainOrderDetails(orderID)的末尾添加

IsSearchBarVisible = Visibility.Hidden; IsSearchBarVisible = Visibility.Hidden;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM