此問題與question有關。Silverlight XAML:綁定到EntityClass中來自Assosiated EntityCollection(高級?!)的屬性
我有一個EF模型,如this。
使用Silverlight 4我有一個應用程序向用戶顯示問題,通過QuestionSet定義。如果一個問題有多個答案選項,則會呈現一個ComboBox。如果只給出一個替代方案,則會呈現一個TextBox,用戶可以在其中放置自由文本。
所有的用戶答案都存儲在PersonQA實體中。但這裏存在的問題是:當TextBox呈現時,我無法找到正確的路徑並綁定到屬性「AnswerFreetext」(在PersonQA中)。 我在做什麼錯?
XAML:
<ListBox x:Name="QAListBox" ScrollViewer.VerticalScrollBarVisibility="Auto" SelectedIndex="-1" ItemsSource="{Binding Questions}" IsTabStop="True" TabIndex="5" ScrollViewer.HorizontalScrollBarVisibility="Auto" Margin="10" BorderThickness="0"> <ListBox.Resources> <fx:EqualityToVisibilityConverter x:Key="converter" TrueValue="Visible" FalseValue="Collapsed" /> <fx:CollectionToFirstElementConverter x:Key="collectiontoitem" /> </ListBox.Resources> <ListBox.ItemTemplate> <DataTemplate> <Grid d:DesignWidth="931" d:DesignHeight="61" d:IsLocked="True" Margin="0"> <Grid.ColumnDefinitions> <ColumnDefinition Width=".80*" MinWidth="800"/> <ColumnDefinition Width=".20*" MinWidth="200"/> </Grid.ColumnDefinitions> <TextBlock Text="{Binding Path=QuestionText}" Padding="10" FontSize="21.333" FontWeight="Bold" Margin="0" Grid.Column="0" d:IsLocked="True" /> <ComboBox ItemsSource="{Binding AnswerAlternative, Mode=OneWay}" SelectedValuePath="AnswerAlternativeId" DisplayMemberPath="AnswerText" FontSize="21.333" FontWeight="Bold" Grid.Column="1" Margin="60,0,0,0" d:IsLocked="True" SelectionChanged="ComboBox_SelectionChanged" Visibility="{Binding Path=AnswerAlternative.Count, Converter={StaticResource converter}, ConverterParameter=2}"> </ComboBox> <TextBox Grid.Column="1" Margin="60,0,0,0" Text="{Binding Path=PersonQA.AnswerFreetext, Mode=TwoWay}" Visibility="{Binding AnswerAlternative.Count, Converter={StaticResource converter}, ConverterParameter=1}" /> </Grid> </DataTemplate> </ListBox.ItemTemplate> </ListBox>
的XAML有一個ViewModel類的DataContext的,這暴露問題 IEnumerable的。
t。
您是否在VS的輸出窗口中看到任何綁定異常? – Timores 2010-10-04 14:42:58
'AnswerAlternativeId'property not found on'Question:4''RIAmedlemsdatabase.Web.Models.Question'(HashCode = 6114302)。 BindingExpression:Path ='AnswerAlternativeId'DataItem ='Question:4';目標元素是'System.Windows.Controls.ComboBox'(Name ='');目標屬性是'SelectedValuePath'(類型'System.String').. System.Windows.Data錯誤:BindingExpression路徑錯誤:在'PersonQA'上找不到'AnswerFreetext'屬性System.ServiceModel.DomainServices.Client.EntityCollection'1 [RIAmedlemsdatabase.Web.Models.PersonQA]'BindingExpression:Path ='PersonQA.AnswerFreetext'... – Thomas 2010-10-05 06:48:59
我已經編輯了SelectedValuePath上的Path元素。現在,上面的例外幾乎沒有了! :) 現在的問題是TextBox綁定到Question對象中的集合。如何綁定到對象集合中的單個對象屬性? ValueConverter? – Thomas 2010-10-05 12:42:55