我有一个db生成的实体:
public partial class UserMobileDevice
{
public string DeviceID { get; set; }
public string DeviceType { get; set; }
public int UserID { get; set; }
public virtual User User { get; set; }
}
现在我想连接一个选择用户并更新记录上的UserID和User对象的ComboBox。
所以这是我的xaml:
<ComboBox Name="cboDefaultUser"
HorizontalAlignment="Stretch"
VerticalAlignment="Top"
ItemsSource="{Binding Users}"
DisplayMemberPath="Username"
SelectedValuePath="UserID"
SelectedValue="{Binding TheEntity.UserID,
UpdateSourceTrigger=PropertyChanged,
NotifyOnSourceUpdated=True,
NotifyOnValidationError=True,
Mode=TwoWay}" />
哪个更新本地实体上的UserID就好了,不过用户对象呢?我如何同时分配?
(也使用MVVM)
[加法]
正如您从SelectedValue
绑定中看到的那样,我的ViewModel
在entity
中的property
名为TheEntity。因此property
中实际上没有UserID {get; set;} ViewModel
,我也可以使用它来设置User对象。那么我怎么能做到这一点?
答案 0 :(得分:1)
ComboBox
只会为您设置一个属性。如果要同时设置User
属性和UserId
属性,则可以绑定到您在同一类型的另一个部分类定义中定义的自定义属性,并为您执行此操作:
public partial class UserMobileDevice
{
public User UiUser
{
get { return User; }
set
{
User = value;
if (value != null)
UserId = value.UserId;
}
}
}
然后将SelectedItem
的{{1}}属性绑定到此属性:
ComboBox
尝试准确使用自动生成的类型&#34; as-is&#34;很少有用。