WPF ComboBox XML绑定和ViewModel绑定是什么?

4
我有一个XML文件,其中包含一些国家的列表。我在xaml中使用XMLDataProvider来绑定ComboBox的ItemsSource。我还有一个ViewModel,其中有一个属性,我想将其绑定到所选值。我尝试使用本地命名空间绑定到ViewModel:

SelectedValuePath="Country"

SelectedValue="{Binding local:Project.ProjectInfo.CompanyCountry}"

但是我必须设置xmlProvider的DataContext。

有没有办法让绑定在ViewModel中工作?

提前感谢您的帮助。


你是否将你的viewModel设置为DataContext? - Snowbear
2个回答

0
如果您的ViewModel是视图的公共属性,您可以为视图命名并以此方式访问它。
<Window Name="Window"
        ...>

<ComboBox SelectedValue="{Binding ElementName=Window, Path=ViewModel.Property}" ... />

...或者类似的东西。


0
将您的ViewModel放在.Resources中并绑定到它?
<UserControl .... xmlns:local="Project">
    <UserControl.Resources>
        <local:ProjectInfo x:key="ProjectInfo"/>
    </UserControl.Resources>
    <UserControl.DataContext>
        <XmlObjectDataProvider ... />
    </UserControl.DataContext>
    <ComboBox ItemsSource="{Binding}" SelectedValuePath="Country" SelectedValue="{Binding CompanyCountry,Source={StaticResource ProjectInfo}}"/>

希望有所帮助。基本上,您有两个数据源 - 一个在数据上下文中,另一个在您的资源中。

编辑:如果需要,您可以交换这两个数据源,这并不重要。您可以在资源中拥有任意数量的数据源。


那个完美地运行了,谢谢!试图点赞你的评论。 - jeremywho
@jeremywho:既然这个方法有效,你应该点击下方投票左侧的勾选框将其接受为答案。 - H.B.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接