0
我有一個列表框中有幾個項目。該項目可在3個狀態:WPF。禁用/啓用列表框項目ContextMenu和MVVM
- 未連接
- 連接
- 活動
我需要在其中的每一項分配一個上下文菜單。實際上,我想要爲每個列表框項目重複使用一個菜單項列表,並且希望根據其狀態禁用/啓用菜單項。我正在使用MVVM。 我想知道實現我的目標的最佳做法是什麼?
<DataTemplate x:Key="TemplateSelector">
<ContentPresenter Content="{Binding}" Name="contentPresenter">
<telerik:RadContextMenu.ContextMenu>
<telerik:RadContextMenu>
<telerik:RadMenuItem Header="Connect" Style="{StaticResource ResourceKey=ContextMenuStyle}" />
<telerik:RadMenuItem Header="Disconnect" />
<telerik:RadMenuItem Header="Delete Database" />
</telerik:RadContextMenu>
</telerik:RadContextMenu.ContextMenu>
</ContentPresenter>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding Path=ConnectionType}" Value="Disconnected">
<Setter TargetName="contentPresenter" Property="ContentTemplate" Value="{StaticResource OfflineDeviceItemTemlpate}" />
</DataTrigger>
<DataTrigger Binding="{Binding Path=ConnectionType}" Value="Internet">
<Setter TargetName="contentPresenter" Property="ContentTemplate" Value="{StaticResource OnlineDeviceItemTemplate}" />
</DataTrigger>
<DataTrigger Binding="{Binding Path=ConnectionType}" Value="Wifi">
<Setter TargetName="contentPresenter" Property="ContentTemplate" Value="{StaticResource OnlineDeviceItemTemplate}" />
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</UserControl.Resources>
<Grid>
<telerik:RadListBox x:Name="lsbDevices" ItemsSource="{Binding Path=Devices}" ItemTemplate="{StaticResource TemplateSelector}"
SelectedItem="{Binding SelectedDevice, Mode=TwoWay}" Grid.Row="0" />
</Grid>
我想添加一個屬性,在模型視圖每個菜單項,如果相應的菜單項應啓用或不將狀態(例如,公共bool ConnectEnabled {...}
)。這是一個好方法,還是我在這裏做的事情很錯?
感謝