获取列表框选定项数据上下文值

本文关键字:数据 上下文 列表 获取 | 更新日期: 2023-09-27 18:35:27

如果我有一个包含以下Microsoft Word 颜色索引的列表框,那么如何获取它的值并将其设置为颜色索引?

<ListBox x:Name="FindColorListBox" HorizontalAlignment="Left" Height="135" Margin="10,198,0,0" VerticalAlignment="Top" Width="107">
    <ListBoxItem Content="None">
        <ListBoxItem.DataContext>
            <word:WdColorIndex>wdAuto</word:WdColorIndex>
        </ListBoxItem.DataContext>
    </ListBoxItem>
    <ListBoxItem Content="Auto">
        <ListBoxItem.DataContext>
            <word:WdColorIndex>wdAuto</word:WdColorIndex>
        </ListBoxItem.DataContext>
    </ListBoxItem>
    <ListBoxItem Content="Black">
        <ListBoxItem.DataContext>
            <word:WdColorIndex>wdBlack</word:WdColorIndex>
        </ListBoxItem.DataContext>
    </ListBoxItem>
</listbox>

所以用户点击一个"FindColorListBox"项,说"黑色",我想从datacontext获取Word.WdColorIndex.Black以便设置

find.ColorIndex = Word.WdColorIndex.wdBlack

基本上我认为它是这样的:

find.ColorIndex = FindColorListBox.SelectedItem.DataContext;

但显然这是不对的...

获取列表框选定项数据上下文值

好吧,你几乎拥有它:

var selectedColorIndex = (Word.WdColorIndex)(((FrameworkElement) 
     (FindColorListBox.SelectedItem)).DataContext)