UiElement를 사용하여 코드에서 바운드 명령을 실행하려고합니다. button.Command.Execute(button.CommandParameter)
코드 뒤에서 UIElement 명령 호출
그러나이 시점에서 버튼의 Command
속성은 null입니다. 동시에 View Model에서 명령을 확인할 때 속성이 설정됩니다. 내가 창안 할 수있는 유일한 진단은 윈도우가 실제로 보일 때까지 명령이 버튼의 명령 속성에 묶여 있지 않다는 것입니다. 나는 어딘가에 한 걸음도 놓치고있는 것처럼 느껴진다. 그렇지 않으면 내 구현이 건전하지 않다. 아래 코드의 일부 스 니핏입니다. 더 많은 정보가 필요하면 알려주십시오.
윈도우 생성자 :
public PlottingViewModel ViewModel { get; set; }
public PlottingGUI()
{
InitializeComponent();
DataContext = (ViewModel = new PlottingViewModel());
_setDefaultSelections();
}
IList<RadioButton> buttons;
설정 기본 선택하십시오 RadioButtons
XAML의
private void _setDefaultSelections()
{
buttons = new List<RadioButton>();
_getRadioButtons(this);
foreach (var setting in ViewModel.Settings.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public))
{
var settingValue = setting.GetValue(ViewModel.Settings);
var button = buttons.FirstOrDefault(btn => btn.Content.Equals(settingValue)
|| ((string)btn.CommandParameter).Equals(settingValue));
if (button == null)
continue;
button.IsChecked = true;
// NullReference here
// button.Command.Execute(button.CommandParameter);
}
}
하나
<RadioButton Content="None"
Grid.Row="0"
Command="{Binding StampedCommand}"
CommandParameter="None"
Foreground="WhiteSmoke"/>
내 기분이, 내가 성공적으로 할 수있을 수있는 유일한 방법 이 작업을 완료하면 내 viewmodel에서 직접 명령을 실행하는 것입니다.
'Loaded' 이벤트에서'_setDefaultSelections'을 (를) 호출하려 했습니까? – dkozl
@ dkozl 당신을 사랑합니다 ... –