我有ListBox
和DataTemplate
。該模板上有一個Button
。當點擊Button
時,我想用每行的對象(在這種情況下稱爲WorkItemTypeMappings
)執行一些邏輯。從DataTemplate上的按鈕獲取列表框行對象
在OnClick
我該如何從Button
(object sender
)到該按鈕所在行的對象?
這裏是我的ListBox
的XAML:
<ListBox ItemsSource="{Binding Source={StaticResource WorkItemTypeMappingsCollectionView}}" HorizontalContentAlignment="Stretch" ScrollViewer.HorizontalScrollBarVisibility="Disabled" Name="lstWITypes">
<ListBox.GroupStyle>
<x:Static Member="GroupStyle.Default"/>
</ListBox.GroupStyle>
<ListBox.ItemTemplate>
<DataTemplate>
<Grid HorizontalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="50"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding SourceType, Converter={StaticResource WorkItemTypeToStringConverter}}"/>
<ComboBox Grid.Column="1" SelectedItem="{Binding DestType}" ItemsSource="{Binding WorkItemTypesForCurrentDestProject, Source={x:Static loc:MainMediator.Instance}, diagnostics:PresentationTraceSources.TraceLevel=High}" DisplayMemberPath="Name" />
<!-- This is the button-->
<Button Grid.Column="2" Content="{Binding PercentMapped}"
Click="ManualMappingClick"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
好東西在這裏。我一直想嘗試我的命令。這將是一個很好的嘗試。我會試試看,如果能解決問題,我會接受。 – Vaccano 2010-01-25 15:01:44
這太棒了!我覺得我是這樣做的「正確的方式」。謝謝你的偉大答案。 – Vaccano 2010-01-25 23:10:48
我很高興你讓它工作給我的最小代碼片段。不用客氣。 – 2010-01-27 05:15:22