Nadal uczę się wiązania w trybie WPF i od pewnego czasu borykam się z tym problemem. Mam sklep enum wewnątrz ViewModel tak:Podaj wartość wyliczenia jako parametr CommandParameter, gdy wyliczenie jest w obiekcie ViewModel
namespace theNamespace
{
public class frmSetupViewModel
{
public enum LocationLabelType {Location, Sample}
...
}
}
I chciałbym mieć przycisk przejść jedną z wartości poprzez CommandParameter ale nie można dowiedzieć się, jak zmusić go do pracy. Jak dotąd są to kombinacje próbowałem:
//When value is inside the frmSetupViewModel, these do not work
CommandParameter="{x:Static local:LocationLabelType.Location}" //'Type was not found.'
CommandParameter="{x:Static local:frmSetupViewModel+LocationLabelType.Location}" //'Type was not found.'
CommandParameter="{x:Static local:frmSetupViewModel.LocationLabelType.Location}" //'Type was not found.'
CommandParameter="{Binding {x:Static local:LocationLabelType.Location}}" //'Value cannot be null'
CommandParameter="{Binding {x:Static local:frmSetupViewModel+LocationLabelType.Location}}" //'Value cannot be null'
CommandParameter="{Binding {x:Static local:frmSetupViewModel.LocationLabelType.Location}}" //'Value cannot be null'
Ale jeśli przeniosę enum POZA VM i do przestrzeni nazw, takich jak ten:
namespace theNamespace
{
public enum LocationLabelType {Location, Sample}
public class frmSetupViewModel
{
...
}
}
to działa dobrze:
//Works when enum is moved to Namespace
CommandParameter="{x:Static local:LocationLabelType.Location}"
Zakładam, że brakuje czegoś z moim CommandParameter?
VM jest ładowany poprzez DataContext:
<Window.DataContext>
<local:frmSetupViewModel />
</Window.DataContext>
Dzięki.
Dzięki, to działa! Czy istnieje sposób, aby powstrzymać błąd w Desginer? W przeciwnym razie nie będę mógł zobaczyć widoku. – Ernie
Spróbuj zbudować projekt. –
Dzięki. Nie ma kości. Próbowałem budowy, czyszczenia, przebudowy, nic nie wydaje się, aby go. Wydaje się, że muszę żyć z nim w przestrzeni nazw, jeśli chcę korzystać z projektanta: /. To jest VS2010, czy VS2012 jest lepszy z WPF? – Ernie