我有UserControl
,其中包含ToggleButton
和ComboBox
。该控件将允许用户选择排序类型(通过ComboBox
)和方向(通过ToggleButton
)。我希望能够公开ComboBox
以及更多的一些属性,那么如何将ComboBox
的ItemsSource绑定到Items
的{{1}}属性,我会自己实现,但也会内置UserControl
属性 - 类似于Content
可以同时执行这两种操作。
我有一个用户控件,其设置与下面的代码类似,或look here。
ComboBox
我希望能够以两种方式使用它:
添加子元素。
<UserControl x:Class="Example.DirComboBox">
<Grid>
<ComboBox x:Name="cbItems" />
<ToggleButton x:Name="tbSortDir"/>
</Grid>
</UserControl>
绑定<local:DirComboBox>
<ComboboxItem Content="Item 1"/>
</local:DirComboBox>
属性。
Items
我愿意使用替代方法,例如将根设置为<local:DirComboBox Items="{Binding SortList}"/>
而不是ComboBox
,但我需要公开以下内容(但不确定如何):
UserControl
,ToggleButton
属性作为bool SortDirection
代表RoutedEvent
和Ascending
答案 0 :(得分:0)
在SortDirection
中为Items
,usercontrol
定义依赖属性。在控件中拥有这些属性后,您可以直接从外部设置它们,如:
<local:DirComboBox Items="{Binding SortList}" SortDirection="{Binding Sort}"/>
然后在你的控件中将这些属性绑定到各自的控件,如:
<UserControl x:Class="Example.DirComboBox">
<Grid>
<ComboBox x:Name="cbItems" ItemsSource="{Binding Items, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}"}/>
<ToggleButton x:Name="tbSortDir" IsPressed="{Binding SortDirection, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}"/>
</Grid>
</UserControl>
保持绑定模式为twoway。
答案 1 :(得分:0)
而不是基于UserControl
的控制权,而是根据the Tutorial on MSDN更改为使用CustomControl。