Я не знаю, существует ли такая функция «массового связывания» (вы могли бы открыть для нее запрос функции, это кажется полезным).
Вы можете связать их отдельно:
var Mine = Backbone.Model.extend({
initialize: function() {
var listener = function() { console.log('changed'); };
this.bind("change:attribute_1", listener);
this.bind("change:attribute_2", listener);
}
});
Или вы можете прослушать все изменения (а затем отфильтровать в слушателе):
var Mine = Backbone.Model.extend({
initialize: function() {
var listener = function() { console.log('changed'); };
this.bind("change", listener);
}
});
Подойдет ли ToggleButton вашим потребностям? CheckBox является производным от него, поэтому они очень похожи.
Я только что начал писать такой же комментарий :)
<ToggleButton Name="tb" Height="45" Width="45">
<ToggleButton.Style>
<Style TargetType="{x:Type ToggleButton}">
<Setter Property="Content" Value="False"/>
<Style.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Content" Value="True"/>
</Trigger>
</Style.Triggers>
</Style>
</ToggleButton.Style>
</ToggleButton>
И теперь, как вы хотели, элемент управления флажком:
<CheckBox>
<CheckBox.Template>
<ControlTemplate TargetType="CheckBox">
<ToggleButton x:Name="toggleButton">
</ToggleButton>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True" SourceName="toggleButton">
<Setter Property="Content" Value="True"/>
</Trigger>
<Trigger Property="Content" Value="True">
<Setter Property="IsChecked" Value="True"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</CheckBox.Template>
</CheckBox>
Я согласен с тем, что ToggleButton - лучший вариант, но если вы хотите, чтобы ваш контент отображался в вашем примере, попробуйте изменить свое объявление ContentPresenter на это:
<ContentPresenter Content="{TemplateBinding Content}" />