2014-11-21 33 views
0

我想實現一個進度條,當我點擊一個搜索按鈕時,我需要它彈出。這是我寫的,但由於某些原因,它總是顯示出來。任何答覆將非常感激。在xaml MVVM模式中綁定進度條

以下是我的XAML文檔中:

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

這是我在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; 
    } 
} 
+0

ViewModel中的可見性? Argggggg – Xaruth 2014-11-21 15:58:38

+0

它有什麼問題? – Beginner11 2014-11-21 17:18:42

+0

不是xaml IsSearchbarVisible(b很小)和viewmodel IsSearchBarVisible(B是大寫)的問題 – whoisthis 2014-11-22 08:13:25

回答

0

綁定是在XAML IsSearchbarVisible問題( b是小),並在視圖模型IsSearchBarVisible(B是大寫)

+0

這確實是一個問題,但問題仍然存在,即使修復後... – Beginner11 2014-11-24 09:36:35

+0

你可以試試設置可見性,然後睡一會兒,然後設置可見性再次崩潰?即刪除控制檯寫入並顯示主要訂單詳細信息。只是爲了解決問題 – whoisthis 2014-11-25 14:32:30

0

請試試這個:

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); 
} 

而在你的方法ShowMainOrderDetails的端部(的orderID)添加到底

IsSearchBarVisible = Visibility.Hidden;