我有一個列表框顯示菜單,用戶可以在應用程序中導航。選擇一個ListBox元素將在菜單的右側顯示相應的UserControl。但是,其中一個菜單項(ABOUT)不應該是可以聚焦的,而只能執行一項任務(打開一個彈出窗口)。選定的項目應保持以前的狀態。檢測鼠標單擊列表框項目與焦點設置爲False
以下建議this link我已經嘗試綁定相關列表框元素的焦點屬性到虛擬機中的布爾屬性。但是,我沒有得到SelectedIndex屬性的任何更新。
有沒有辦法解決這個問題?
XAML:
<ListBox Grid.Row="0"
ItemsSource="{Binding MenuButtonInfoList}"
SelectedIndex="{Binding SelectedMainMenuIndex, Mode=TwoWay}"
Background="Transparent" BorderBrush="Transparent" Padding="0"
VerticalContentAlignment="Center">
<ListBox.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="Focusable" Value="{Binding Path=Focusable}" />
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemTemplate>
<DataTemplate>
<Border Style="{StaticResource MenuButtonBorder}">
<StackPanel Orientation="Horizontal" Height="Auto">
<Image Source="{Binding ImageFilePath}"
Style="{StaticResource MenuButtonImage}" />
<Label Content="{Binding Label}"
Style="{StaticResource MenuButtonLabel}" />
</StackPanel>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
你可以使用['IsHitTestVisible '從MSDN](https://msdn.microsoft.com/en-us/library/system.windows.uielement.ishittestvisible(v = vs.110).aspx) – XAMlMAX
爲什麼你要wan如果您不想選擇該項目,可以期待SelectedIndex屬性得到更新嗎? – mm8
我希望能夠選擇列表框項目,但不是該項目應該有焦點。對於其他項目,它們將導致MainWindow佈局發生變化,但是ABOUT項目將打開一個彈出窗口。因此,關於項目有重點沒有任何意義。 – Oystein