В обычном WPF у вас может быть кнопка внутри другой кнопки, и чтобы оба события кнопок поднимались при нажатии внутренней кнопки, вы можете иметь следующий XAML (согласно this question):Кнопка внутри кнопки (WPF + Caliburn.Micro)
<Button Click="OuterClick">
<Grid>
<SomeOtherContent />
<Button Click="InnerClick" />
</Grid>
</Button>
А потом в коде-за использования Handled собственности на события, так что OuterClick не возникает, когда внутренняя кнопка была нажата:
private void OuterClick(object sender, RoutedEventArgs e) {
// Do something
}
private void InnerClick(object sender, RoutedEventArgs e) {
// Do something else
e.Handled = true;
}
Как когда-либо, после обычных соглашений Caliburn.Micro вы будете иметь следующий код XAML:
<Button x:Name="OuterClick">
<Grid>
<SomeOtherContent />
<Button x:Name="InnerClick" />
</Grid>
</Button>
С этим в ViewModel:
private void OuterClick() {
// Do something
}
private void InnerClick() {
// Do something else
}
Как я могу убедиться, что оба не InnerClick()
OuterClick()
и приподняты когда я нажимаю InnerButton?
EDIT: Или, какие еще элементы управления можно использовать вместо этого?
Вложенные кнопки? какая это глупость. Я сомневаюсь, что вы получите парня, который поддерживает калибр, чтобы приспособиться к этому делу, потому что этот сценарий является тем, который когда-нибудь будет опубликован на thedailywtf.com ... – Dbl
@Sinatr не пропускает «__not__» – grek40
Что другой компонент можно обойти вокруг моего ' 'и внутренней кнопки, чтобы я мог присоединить событие click к самому внешнему элементу? Мне нужно иметь список с элементами, и мне нужно иметь возможность щелкнуть элемент, но я также должен нажать кнопку внутри элемента (без щелчка самого элемента)? –
GTHvidsten