我有一個運行在UWP中的Xamarin.Forms應用程序,我使用DLToolkit.Forms.Controls.FlowListView(從daniel-luberda)顯示某種帶按鈕的網格視圖。Xamarin.Forms ChangeCanExecute不使用正確的參數
使用的Mvvm框架是FreshMvvm。
這是我在XAML GridView控件:
<c:FlowListView SeparatorVisibility="None"
HasUnevenRows="False" FlowColumnMinWidth="100"
FlowItemsSource="{Binding Boards}">
<c:FlowListView.FlowColumnTemplate>
<DataTemplate>
<Button Text="{Binding Number}"
Command="{Binding Path=BindingContext.SelectBoardCommand, Source={x:Reference Name=SalesPage}}"
CommandParameter="{Binding .}" />
</DataTemplate>
</c:FlowListView.FlowColumnTemplate>
</c:FlowListView>
下面是結果(我簡化關於顏色和大小的XAML):
我的GridView控件內的按鈕被綁定到帶參數的命令。每次我點擊一個按鈕,我想禁用它。
我的命令如下:
private ICommand _selectBoardCommand;
[DoNotNotify]
public ICommand SelectBoardCommand => _selectBoardCommand = new Command<BoardModel>(board =>
{
board.NotUsed = false;
((Command<BoardModel>) _selectBoardCommand).ChangeCanExecute();
}, board => board != null && board.NotUsed);
推動上的按鈕調用與正確的參數命令(綁定到命令的文本board.Number是一個我在命令中獲得) 。 但是,當爲了禁用該命令而調用「CanChangeExecute」時,我無法將選定的板作爲參數傳遞。
,並在命令,使用
((Command<BoardModel>) _selectBoardCommand).ChangeCanExecute();
時,它調用的函數功能
board => board != null && board.NotUsed
與列表的最新項目。
此外,我需要在ChangeCanExecute中放置一個「board!= null」,因爲這個Func用空值調用了很多時間。
有什麼想法?
你確定它不是FlowListView的問題嗎? – Andy
@Andy剛剛測試過,並且出現同樣的問題 – hugoterelle