我做了一个模板,看起来像这样:动态模板WPF
<ControlTemplate x:Key="onoffValue" TargetType="{x:Type Control}">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Height="20" Margin="0,5,0,0">
<RadioButton Content="On" Height="20" Name="On_radiobutton" />
<RadioButton Content="Off" Height="20" Name="Off_radiobutton" Margin="20,0,0,0" />
</StackPanel>
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding Path=BootSector}" Value="true">
<Setter TargetName="On_radiobutton" Property="IsChecked" Value="true"/>
</DataTrigger>
<DataTrigger Binding="{Binding Path=BootSector}" Value="false">
<Setter TargetName="Off_radiobutton" Property="IsChecked" Value="true"/>
</DataTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
现在,它被绑定到物业启动扇区(布尔)OFA“配置”对象。
我用这个模板在我的窗口,有一个配置对象作为这样的数据上下文:
<Control Template="{StaticResource onoffValue}">
</Control>
它的伟大工程,但我想走得更远。
我想知道我怎么可以在不同的属性传递给我的模板动态绑定(动态更改模板绑定属性) 即我tryed像
<Control Template="{StaticResource onoffValue}" xmlns:test="{Binding Path=BootSector}"/>
,并将其绑定在模板“测试”但它不起作用
这可能吗?我怎样才能做到这一点 ?我认为我不是太远,但还没有!
预先感谢您
编辑:关于梅德答案:
有使用中的错误。当我这样做时:
<StackPanel local:ToggleControl.IsOn="{Binding BootSector, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"
Grid.Row="0" Grid.Column="1"
Orientation="Horizontal" HorizontalAlignment="Center" Margin="5">
<RadioButton Content="On" local:ToggleControl.Role="On" Height="20" Margin="5" />
<RadioButton Content="Off" local:ToggleControl.Role="Off" Height="20" Margin="5" />
</StackPanel>
默认情况下BootSector为false。当我点击on按钮(true)时,它将bootSector设置为true,然后立即为false。行为应该是它保持为真,直到它未被选中?这与这里相关的问题有关吗? http://geekswithblogs.net/claraoscura/archive/2008/10/17/125901.aspx
当用户点击单选按钮您目前的范本不改变“引导扇区”。这是期望的行为? – Jens
它仍然是一个正在进行的工作,但我也希望这样做,如果你有任何意见,这将是伟大的太 – djfoxmccloud
@djfoxmccloud你打算如何使用'模板模板'?说,你有它 - 你将如何利用它,你可以在这里发布样本? – 2011-11-28 11:59:29