WPF组合框SelectedItem问题
【腾讯云】亏本大甩卖,服务器4核16G 1年370元(带宽12M,系统盘120GB SSD盘,月流量2000GB)!!!!!!
云产品 配置 价格
服务器 1核2G,带宽5M,系统盘50GB SSD盘,月流量500GB 38元/年
MySQL 1核1G 19元/年
服务器 16核32G,带宽18M,系统盘250GB SSD盘,月流量5000GB 1197元/年
点我进入腾讯云,查看更多详情

I am failing in achieving a very simple functionality from a WPF ComboBox.

My ComboBox needs to list a collection of values. This works fine. The value id is also saved succesfully in the database. The problem is that when i want to open the window in edit mode, the combo stays empty. Here is the code :

            <ComboBox Height="28" 
                  HorizontalContentAlignment="Center" 
                  Name="cmbActivity"
                  ItemsSource="{Binding Path=Unit.UnitActivities}"
                  SelectedValuePath="Id"
                  SelectedValue="{Binding Path=UnitActivityId}"
                  Style="{StaticResource comboBoxInError}" 
                  Width="200" 
                  Margin="6" 
                  HorizontalAlignment="Left">
            <ComboBox.ItemTemplate>
                <DataTemplate>
                    <TextBlock FlowDirection="LeftToRight" Text="{Binding Path=ActivityTime.Name}" />
                </DataTemplate>
            </ComboBox.ItemTemplate>
            <ComboBox.SelectedItem>
                <Binding ElementName="cmbActivity" Path="UnitActivityId" UpdateSourceTrigger="PropertyChanged">
                    <Binding.ValidationRules>
                        <ExceptionValidationRule />
                        <val:NotEmptyValidationRule />
                        <val:UnitResTimeOverlapValidationRule />
                    </Binding.ValidationRules>
                </Binding>
            </ComboBox.SelectedItem>
        </ComboBox>

I understand my problem is somewhere in the SelectedItem section, but i just could not figure where and why.

Please help..

Thanks,

#0

Try changing

<Binding ElementName="cmbActivity" Path="UnitActivityId" UpdateSourceTrigger="PropertyChanged">

to:

<Binding Path="UnitActivityId" UpdateSourceTrigger="PropertyChanged">

by removing the ElementName. It makes no sense to set the binding source to itself because the data context will infer this by default.

#1

I am posting the answer for the original problem. This is idenctical to : WPF Cloned/Detached object edit problem - what is the standard?

  1. First implement your cloneable object container :

    public class ClonableObjectContainer : Object , ICloneable
    {
        private Object data;
    
        public ClonableObjectContainer(Object obj)
        {
            data = obj;
        }
    
        public Object Data
        {
            get { return data; }
        }
    
        public object Clone()
        {
            return (ClonableObjectContainer)this.MemberwiseClone();
        }
    }
    
  2. Then use this object with its Clone method to create your detached edit object:

             ClonableObjectContainer coc = new ClonableObjectContainer(actor);
             EntityObject editEntity = (EntityObject)coc.Data;
    
  3. After performing changes, detach the original object from the ObjectContext , attach the cloned object, change its state to EntityState.Modified and gracefully save:

            ContextManager.CurrentObjectContext.Detach(oldItem);
            ContextManager.CurrentObjectContext.Attach((IEntityWithKey)item);
            ContextManager.CurrentObjectContext.ObjectStateManager.ChangeObjectState(item, EntityState.Modified); 
            ContextManager.Save();
    

Hope it helps... Oran

推荐文章

为黑莓应用程序到应用程序世界创建要提交的文件包

为黑莓应用程序到应用程序世界创建要提交的文件包

推荐文章

CFchart意外关闭了我的笔记本电脑

CFchart意外关闭了我的笔记本电脑

推荐文章

使用Maven离线构建项目,不使用M2 repo,而使用系统jar

使用Maven离线构建项目,不使用M2 repo,而使用系统jar

推荐文章

sudoers作为php用户运行shell脚本的语法?

sudoers作为php用户运行shell脚本的语法?

推荐文章

在SAFARI上以编程方式创建新的标签页作为新窗口

在SAFARI上以编程方式创建新的标签页作为新窗口

推荐文章

文本域java中的换行符“\n”

文本域java中的换行符“\n”

推荐文章

如何将依赖项属性绑定到WPF中的控件?

如何将依赖项属性绑定到WPF中的控件?

推荐文章

为html表指定jquery主题

为html表指定jquery主题

推荐文章

onclick事件在JavaScript中不起作用

onclick事件在JavaScript中不起作用

推荐文章

GUI编程学习资料?

GUI编程学习资料?

推荐文章

AnythingSlider静态链接第一次点击2次

AnythingSlider静态链接第一次点击2次

推荐文章

在Java代码中围绕圆形路径绘制按钮需要帮助吗?

在Java代码中围绕圆形路径绘制按钮需要帮助吗?

推荐文章

C++ STL比较类:如何参数化COMP类行为?

C++ STL比较类:如何参数化COMP类行为?

推荐文章

如何设置Order By,以便空行根据后面的约束进行排序

如何设置Order By,以便空行根据后面的约束进行排序

推荐文章

定义错误

定义错误

推荐文章

Griffon Gsql-如何在config.properties文件中配置数据源?

Griffon Gsql-如何在config.properties文件中配置数据源?