Проблемы с привязкой с использованием Telerik и ReactiveUI - PullRequest
0 голосов
/ 14 марта 2019

Я понимаю, что этот вопрос слишком специфичен для продукта Telerik Controls, но любая помощь будет признательна.

У меня возникли некоторые проблемы с привязкой к комбинированному списку telerik внутри формы данных.

Я устанавливаю источник элемента поля со списком в виде коллекции, извлеченной из базы данных.Я хочу обновить EditableModel с помощью JobID из выбранного выпадающего значения.

Мне нужно, чтобы для выбранного элемента в выпадающем списке было установлено значение, совпадающее с идентификатором Id, сохраненным в свойстве JobID.

Я поиграл с этим, но не могу понятьзначения, чтобы связать правильно.

Просмотр модели

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 голосов
/ 16 марта 2019

Нашел проблему.Моя привязка DataContext не была настроена правильно

...