Вот такая разметка:
<ListBox Height="92" HorizontalAlignment="Left" Margin="12,556,0,0" Name="ctlBodyTypes" VerticalAlignment="Top" Width="276" Grid.RowSpan="2"
ItemsSource="{Binding}"
>
<ListBox.ItemTemplate>
<DataTemplate>
<CheckBox>
<TextBlock Text="{Binding Path=Name }" />
</CheckBox>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Вот так привязываю DataContext :
QCISRDatabaseClasses.QCISRDataContext db = new QCISRDatabaseClasses.QCISRDataContext();
var qry = (from r in db.sp_GetBodyTypes() select r).AsEnumerable();
ctlBodyTypes.DataContext = qry;
Чекбоксы появляются, но у них нет текста. Как это исправить?
Здравствуйте, MxMsk, Вы писали:
MM>Здравствуйте, senglory, Вы писали:
S>>Чекбоксы появляются, но у них нет текста. Как это исправить?
MM>Что пишется в Output? Если есть ошибки в Binding-ах, то они туда сбрасываются при отладке.
System.Windows.Data Error: 40 : BindingExpression path error: 'Name' property not found on 'object' ''sp_GetBodyTypesResult' (HashCode=17203224)'. BindingExpression:Path=Name; DataItem='sp_GetBodyTypesResult' (HashCode=17203224); target element is 'CheckBox' (Name=''); target property is 'Content' (type 'Object')
Как только проставил в DBML для sp_GetBodyTypes правильный ReturnType — все заработало!
Здравствуйте, senglory, Вы писали:
S>Как только проставил в DBML для sp_GetBodyTypes правильный ReturnType — все заработало!
Вот и отлично
Да, если нужно просто прибиндить текст CheckBox, то можно просто задать привязку для Content:
<CheckBox Content="{Binding Path=Name}" />
А XAML лучше оформлять тегом [xml]