我正在尝试以 MVVM 方式使用 Telerik RadControls,但遇到了一些奇怪的问题。
RadOutlookBar 背后的 Viewmodel 有一个 ViewModel 集合,每个 ViewModel 都有一个 Title 字符串属性。我想这样定义它,将它们包裹在 RadOutlookBarItem 内并将标题/标题属性绑定在一起。
XAML:
<telerik:RadOutlookBar x:Name="Items">
<telerik:RadOutlookBar.TitleTemplate>
<DataTemplate>
<ContentControl Content="{Binding Path=Title}" />
</DataTemplate>
</telerik:RadOutlookBar.TitleTemplate>
<telerik:RadOutlookBar.ItemTemplate>
<DataTemplate>
<telerik:RadOutlookBarItem Header="{Binding Path=Title}" >
<ContentControl Content="{Binding}" />
</telerik:RadOutlookBarItem>
</DataTemplate>
</telerik:RadOutlookBar.ItemTemplate>
</telerik:RadOutlookBar>
这按预期工作,只是标题看起来很奇怪。它不像一个静态字符串项目,它似乎被包装在另一个对象中,该对象的行为类似于 RadOutlookBarItem(当鼠标悬停时它会改变颜色等)
即使我改为简单的字符串而不是绑定,它仍然很奇怪。但如果我没有在 RadOutlookBar 中定义 ItemTemplate(即不是动态控件),它看起来没问题。
那里可能发生了什么?
一举解决了这个问题和另一个问题。我一直绑定到错误的模板。这让我觉得我必须自己添加 OutLookBarItem。
最后,我应该将我想要绑定的内容绑定到 ContentTemplate。
<telerik:RadOutlookBar x:Name="Items">
<telerik:RadOutlookBar.ContentTemplate>
<DataTemplate >
<ContentControl Content="{Binding}" />
</DataTemplate>
</telerik:RadOutlookBar.ContentTemplate>
<telerik:RadOutlookBar.TitleTemplate>
<DataTemplate>
<TextBlock Text="{Binding DisplayName}" />
</DataTemplate>
</telerik:RadOutlookBar.TitleTemplate>
<telerik:RadOutlookBar.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding DisplayName}" />
</DataTemplate>
</telerik:RadOutlookBar.ItemTemplate>
</telerik:RadOutlookBar>
我认为应该有效。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)