У меня есть текстовое поле и список, и когда вы нажимаете на кнопку , вы просматриваете список, в настоящее время вид списка находится под кнопкой и текстовым полем и всегда есть и заполняется после нажатия на кнопку. Существует способ, чтобы скрыть просмотр списка со страницы, пока вы не нажмете на кнопку и не запросите данные?Скрыть просмотр списка до тех пор, пока не будет нажата кнопка
public class ModelView
{
public ModelView()
{
GetServiceCollection = new ObservableCollection<string>();
}
bool isDataLoaded = false;
MyCommand goCommand;
public ICommand GoCommand
{
get { return goCommand ?? (goCommand = new MyCommand(() => OnGoCommand(),() => !isDataLoaded)); }
}
public ObservableCollection<string> GetServiceCollection { get; set; }
void OnGoCommand()
{
GetServiceCollection.Clear();
foreach (var item in _configServiceModel.CollectList)
{
GetServiceCollection.Add(item);
}
isDataLoaded = true;
goCommand.RaiseCanExecuteChanged();
}
......
Часть XAML
<Button Content="Go" Grid.Column="3" Grid.Row="1" HorizontalAlignment="Left"
VerticalAlignment="Top" Width="75" Height="21.96" Command="{Binding GoCommand}"/>
<ListView Grid.Column="2" HorizontalAlignment="Center" Height="230"
Margin="5,20,0,0" Grid.Row="2" VerticalAlignment="Top" Width="330"
ItemsSource="{Binding GetCollection}" }" >
}
FYI - 'BooleanToVisibilityConverter' предоставляется в WPF по умолчанию. Просто объявляйте так: ' '. –
Спасибо за вашу помощь! Voted Up Я использую ваш код и его работу, но теперь, когда я нажимаю кнопку, я получаю данные, но кнопка включена, что я должен изменить в этом случае? Btw есть способ написать код иначе, чем {return goCommand ?? (goCommand = new MyCommand (() => Command(), true)); , может быть, просто? Спасибо заранее –
@ RohitVats-, когда я перехожу к этому типу, я получил ошибку в RT, мне нужно добавить что-то в дополнение к этому –