使用Telerik和ReactiveUI进行绑定的问题

时间:2019-03-14 10:55:40

标签: c# wpf telerik reactiveui

我知道这个问题是否对Telerik Controls产品来说太具体了,但是可以提供任何帮助。

我在绑定到数据表单中的telerik组合框时遇到一些问题。

我正在将comboboxfield的项目源设置为从数据库中提取的集合。我希望从选定的下拉值中使用JobID更新EditableModel。

我需要将组合框的“选定项”设置为JobID属性中存储的匹配ID。

我对此有一些尝试,但是似乎无法正确绑定值。

查看模型

public class EditableViewModel : ReactiveObject
{
    public EditableModel SelectedEntity { get; set; }
    public List<JobModel> Jobs { get; set; }
}

模型

public class EditableModel
{

    public string Name { get; set; }
    public int JobId { get; set; }
}

public class JobModel
{
    public string Name { get; set; }
    public int Id { get; set; }
}

查看

<reactiveui:ReactiveWindow 
    x:Class="TestWpfApplication.MainWindow"
    x:TypeArguments="test:EditableViewModel"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:test="clr-namespace:TestWpfApplication.ViewModels"
    xmlns:reactiveui="http://reactiveui.net"
    xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
    Title="NuGet Browser" Height="450" Width="800"
    mc:Ignorable="d">
    <Grid>
        <Grid.Resources>
            <DataTemplate x:Key="MyTemplate">
                <StackPanel>
                    <telerik:DataFormDataField  Label="First Name" DataMemberBinding="{Binding Path=Name, Mode=TwoWay}"  />
                    <telerik:DataFormComboBoxField  Label="Job" SelectedValuePath="Id" DisplayMemberPath="Name" DataMemberBinding="{Binding JobId, Mode=TwoWay}" ItemsSource="{Binding Jobs, Mode=TwoWay}"/>
                </StackPanel>
            </DataTemplate>
        </Grid.Resources>
        <telerik:RadDataForm AutoGenerateFields="False" x:Name="RadDataForm" EditTemplate="{StaticResource MyTemplate}"/>
    </Grid>
</reactiveui:ReactiveWindow>

1 个答案:

答案 0 :(得分:0)

发现了问题。我的DataContext绑定未正确设置