【问题标题】:Bind a single RIA Entity in View在视图中绑定单个 RIA 实体
【发布时间】:2012-01-16 17:08:53
【问题描述】:

我不明白为什么会这样(将单个 Car 绑定到 RadDataForm):

xaml:

<tk:RadDataForm ItemsSource="{Binding Path=Cars}"
    AutoGenerateFields="True" DataContext="{Binding}" />

视图模型:

public void OnNavigatedTo(NavigationContext navigationContext)
{
    carId = int.Parse(navigationContext.Parameters["IdRecord"]);
    Cars= _carContext.GetCarById(carId);
}

private IEnumerable<Car> cars;
public IEnumerable<Car> Cars
{
    get { return this.cars; }
    set
    {
        if (this.cars!= value)
        {
            this.cars= value;
            this.RaisePropertyChanged(() => this.Cars);
        }
    }
}

而这个不是

xaml:

<tk:RadDataForm CurrentItem="{Binding Path=CurrentCar}"
    AutoGenerateFields="True" DataContext="{Binding}" />

视图模型:

public void OnNavigatedTo(NavigationContext navigationContext)
{
    carId = int.Parse(navigationContext.Parameters["IdRecord"]);
    CurrentCar= _carContext.GetCarById(carId).FirstOrDefault();
}

private Car currentCar;
public Car CurrentCar
{
    get { return this.currentCar; }
    set
    {
        if (this.currentCar!= value)
        {
            this.currentCar= value;
            this.RaisePropertyChanged(() => this.CurrentCar);
        }
    }
}

我不想要一个 IEnumerable 因为我想要一个实体。 而且,顺便说一句,我想知道出了什么问题......

【问题讨论】:

    标签: c# silverlight mvvm ria prism-4


    【解决方案1】:

    当绑定到单个实体时,您应该使用CurrentItem 而不是ItemsSource

    【讨论】:

    • 谢谢,但它也不起作用。我根据您的建议编辑代码。
    • 我发现为了检索单个实体,我必须定义一个返回单个 TEntity 而不是 IEnumerable 或 IQueryable 的服务。这种方法行得通,谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多