Wpf 使用MVVM命令Listbox的静态项

Wpf 使用MVVM命令Listbox的静态项,wpf,xaml,mvvm,listbox,selecteditem,Wpf,Xaml,Mvvm,Listbox,Selecteditem,我的视图中有一个包含三个静态项(姓名、年龄、性别)的列表框,当列表框中的某个项被选中时,我希望我的ViewModel执行一些操作。我希望使用MVVM模式在没有任何代码落后的情况下完成这项工作 我的目标是在选择一个项目时导航到一个页面。上面提到的项目不是来自一个可观察的列表,而是在我的XAML中硬编码的。我该怎么做?请教我。如果你不介意寄一个样品,那将是一个很大的帮助。非常感谢 <ListBox x:Name="lbviewlist"> <i:Interaction.Tr

我的视图中有一个包含三个静态项(姓名、年龄、性别)的列表框,当列表框中的某个项被选中时,我希望我的ViewModel执行一些操作。我希望使用MVVM模式在没有任何代码落后的情况下完成这项工作

我的目标是在选择一个项目时导航到一个页面。上面提到的项目不是来自一个可观察的列表,而是在我的XAML中硬编码的。我该怎么做?请教我。如果你不介意寄一个样品,那将是一个很大的帮助。非常感谢

<ListBox x:Name="lbviewlist">
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="SelectionChanged" >
            <Command:EventToCommand Command ="{Binding ViewCommand}"
                PassEventArgsToCommand="True"/>
        </i:EventTrigger>
    </i:Interaction.Triggers>
    <ListBox.Items>
        <StackPanel  x:Name="lbiview1" Orientation="Vertical">
            <ListBoxItem Content="Name" FontSize="35" Margin="10,0,0,0"
                Foreground="OrangeRed"/>
            <TextBlock TextWrapping="Wrap" Text="View name of the patient"  
                FontSize="25"  Margin="10,0,0,0" Foreground="White"/>
        </StackPanel>
        <StackPanel x:Name="lbiview2" Orientation="Vertical">
            <ListBoxItem Content="Age"  FontSize="35" Margin="10,20,0,0"
                Foreground="OrangeRed"/>
            <TextBlock TextWrapping="Wrap" Text="View age of the patient"  
                FontSize="25"  Margin="10,0,0,0" Foreground="White"/>
        </StackPanel>
        <StackPanel x:Name="lbiview3"  Orientation="Vertical">
            <ListBoxItem Content="Gender" FontSize="35" Margin="10,20,0,0"
                Foreground="OrangeRed"/>
            <TextBlock TextWrapping="Wrap" Text="View the gender of the patient"
                FontSize="25" Margin="10,0,0,0" Foreground="White"/>
        </StackPanel>
    </ListBox.Items>                    
</ListBox>

您可以使用数据绑定将
列表框的
SelectedItem
绑定到视图模型上的属性。然后,在视图模型属性的setter中,可以在所选项发生更改时运行所需的逻辑

<ListBox SelectedItem="{Binding MySelectedItem}" ... />

干净多了,我想你会同意的

您可以使用数据绑定将
列表框的
SelectedItem
绑定到视图模型上的属性。然后,在视图模型属性的setter中,可以在所选项发生更改时运行所需的逻辑

<ListBox SelectedItem="{Binding MySelectedItem}" ... />

干净多了,我想你会同意的

你介意给我举个例子吗?谢谢你的帮助。我只是不知道从哪里开始,怎么开始。顺便说一句,我在互联网上看到了不同的例子,但是我的问题是我没有可以绑定到属性的IObservable集合,因为我的项目是硬编码的。见may XAML。再次感谢_view1、_view2和_view3是什么?这些只是我放在参考资料中的字符串。xaml:)我可以直接将其更改为项目的实际字符串/名称。请参阅更新的XAML。再次感谢!我非常同意,但我的问题是我的老板要求我采用硬编码的方式,因为它是静态的,而不是将其放在列表中(有没有办法将myselecteditem绑定到我的静态/硬编码项?最后,(为太多问题道歉)如何实现myselecteditem?我指的是语法。我真的很抱歉,因为我最近才开始学习Windows phone开发。谢谢我的朋友。你老板的要求是数据是静态的,他没有(也不应该)指定如何实现它,这是您的责任。使用此方法,数据仍然可以是静态的,只是静态数据的定义已从视图移动到视图模型。您介意给我发送一个示例吗?非常感谢您的帮助。我只是不知道从何处开始以及如何开始。顺便说一下,我在I中看到了不同的示例然而,我的问题是,我没有可以绑定到属性的IObservable集合,因为我的项是硬编码的。请参见may XAML。再次感谢您什么是_view1、_view2和_view3?这些只是我放在参考资料中的字符串。XAML:)我可以直接将其更改为项目的实际字符串/名称。请参阅更新的XAML。再次感谢!我非常同意,但我的问题是我的老板要求我使用硬编码方式,因为它是静态的,而不是将其放入列表中。:(有没有办法将myselecteditem绑定到我的静态/硬编码项目?最后,(对太多问题表示歉意)如何实现MySelectedItem?我指的是语法。我真的很抱歉,因为我最近才开始学习Windows phone开发。谢谢我的朋友。你老板的要求是数据是静态的,他不会(也不应该)指定如何实现它,这是您的责任。使用此方法,数据仍然可以是静态的,只是静态数据的定义已从视图移动到视图模型。