मैं WPF RibbonControl का उपयोग कर एक छोटा सा समस्या हुई (अक्टूबर 2010 संस्करण) का कारण बनता है। मेरा विचार रिबन ग्रुप की आइटम्ससोर्स प्रॉपर्टी को मेरे व्यूमोडेल में बांधना था, और आवश्यकतानुसार रिबनबटन बनाने के लिए डेटा टेम्पलेट का उपयोग करना था। यह काम करता है, लेकिन यह (प्रत्येक बटन के लिए एक) एक बाध्यकारी त्रुटि होती है जब आप विंडो दिखाने:WPF रिबन: DataTemplate BindingExpression पथ त्रुटि
System.Windows.Data Error: 40 : BindingExpression path error: 'IsDropDownOpen' property not found on 'object' ''RibbonContentPresenter' (Name='PART_ContentPresenter')'. BindingExpression:Path=IsDropDownOpen; DataItem='RibbonContentPresenter' (Name='PART_ContentPresenter'); target element is 'RibbonButton' (Name=''); target property is 'NoTarget' (type 'Object')
यहाँ, एक कोड टुकड़ा है viewmodel तार की एक सरणी के द्वारा बदल दिया जाता है, लेकिन मुद्दा है एक ही:
<ribbon:RibbonWindow x:Class="WpfRibbonApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:ribbon="clr-namespace:Microsoft.Windows.Controls.Ribbon;assembly=RibbonControlsLibrary"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
Title="MainWindow" x:Name="RibbonWindow" Width="640" Height="480" >
<ribbon:RibbonWindow.Resources>
<x:Array x:Key="buttonArray" Type="sys:String">
<sys:String>Button 1</sys:String>
<sys:String>Button 2</sys:String>
<sys:String>Button 3</sys:String>
<sys:String>Button 4</sys:String>
<sys:String>Button 5</sys:String>
<sys:String>Button 6</sys:String>
</x:Array>
<DataTemplate x:Key="buttonTemplate">
<ribbon:RibbonButton Label="{Binding}" />
</DataTemplate>
</ribbon:RibbonWindow.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<ribbon:Ribbon>
<ribbon:RibbonTab Header="Tab1">
<ribbon:RibbonGroup Header="Group1"
ItemsSource="{StaticResource buttonArray}"
ItemTemplate="{StaticResource buttonTemplate}"
/>
</ribbon:RibbonTab>
</ribbon:Ribbon>
</Grid>
</ribbon:RibbonWindow>
फिर, यह काम करता है, लेकिन बाध्यकारी त्रुटि थोड़ा कष्टप्रद है। क्या इससे छुटकारा पाने का कोई तरीका है?
रिबन बटन के लिए कस्टम नियंत्रण टेम्पलेट बनाना चाल था। – janemann