Jeśli chodzi o UserControl, to się powinno robić nieco inaczej.
W UserControl powinieneś stworzyć odpowiednie propertisy do sterowania checkboxami (to się nazywa DependencyProperty). UserControl RACZEJ nie powinien mieć modelu w sobie, powinien zależeć od zewnętrznych źródeł. To powinno wyglądać mniej więcej tak:
- Załózmy, że masz w UserControl jakiegoś checkboxa (XAML):
Kopiuj
<CheckBox name="useSwordCheck">Użyj miecza</CheckBox>
Następnie w pliku cs (codebehind) powinieneś stworzyć dependency property:
Kopiuj
public partial class MyUserControl: UserControl
{
public bool UseSword
{
get { return (bool)GetValue(UseSwordProperty );
set { SetValue(UseSwordProperty, value); }
}
public static readonly DependencyProperty UseSwordProperty =
DependencyProperty.Register("UseSword", typeof(bool), typeof(MyUserControl),
new FrameworkPropertyMetadada(false, new PropertyChangedCallback(UseSwordChanged)));
static void UseSwordChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
MyUserControl ctrl = d as MyUserControl;
bool value = (bool)e.NewValue;
ctrl.useSwordCheck.IsChecked = value;
}
}
Następnie na okienku, w którym używasz tego UserControl, możesz użyć już normalnie bindingu:
Kopiuj
<MyUserControl UseSword="{Binding UserSword}" />
Oczywiście bindujesz tutaj właściwość UseSword z ViewModelu okna.
Grzegorz ŚwidwaGrzegorz Świdwa