Я пытаюсь динамически изменить имя содержимого кнопки в c# WPF, когда файл выбран после нажатия кнопки. Я использую MVVM в этом методе. Я попытался вставить событие click, но в этом методе это не сработает, потому что событие click всегда будет происходить раньше, чем событие команды. Я исследовал в StackExchange решения, но то, что я видел, - это, как правило, триггерные события и создание команды, которая вызывает несколько команд. Я мог бы использовать некоторые указатели на методологию, которая лучше всего подходит для изменения имени содержимого кнопки.
У меня есть следующая иерархия в MVVM (модификации все еще должны следовать этой иерархии)
В моем XAML я создал кнопку с Content="Import File"
Я хотел бы динамически изменить это при выборе файла. Я использовал здесь командный метод и метод делегата в своем методе view для вызова моих методов.
<Button x:Name="SelectFile" Margin="0 0 0 0" Content="Import File" Command="{Binding ImportExcelBtn, Mode=TwoWay}"/>
В модели представления я использую метод команды делегата как таковой. Я получил имя файла как string FileName
, но не могу найти способ связать метод и изменить имя содержимого кнопки.
public DelegateCommand ImportExcelBtn
{
get { return _importExcelBtn; }
set
{
_importExcelBtn = value;
SetPropertyChanged("ImportExcelBtn");
}
}
public ViewModel()
{
modelView = new ModelView();
ImportExcelBtn = new DelegateCommand(ImportExcelFileAction);//From model
}
private void ImportExcelFileAction()
{
excelFile = ImportFile();//get excel file from method
string name = excelFile .ToString();
int position = name.LastIndexOf("\\") + 1;
string FileName = name.Substring(position, name.Length - position);
}
В моей модели у меня есть метод выбрать файл. (Мой сценарий успешно выполняется здесь)
Большое спасибо!