繁体   English   中英

ListView.SelectedItem BindingtoSource

[英]ListView.SelectedItem BindingtoSource

在WPF绑定的学习过程中,我自己遇到了一个主要问题。 我必须创建一个使用Listview的应用程序,如下所示:

<ListView.View>
    <GridView>
        <GridViewColumn Header="ID" Width="75" DisplayMemberBinding="{Binding ID}" />
        <GridViewColumn Header="Name" Width="170" DisplayMemberBinding="{Binding Name}" />
        <GridViewColumn Header="Price" Width="100" DisplayMemberBinding="{Binding Price}" />
        <GridViewColumn Header="Reseller" Width="Auto" DisplayMemberBinding="{Binding Reseller}" />
    </GridView>
</ListView.View>

在代码隐藏文件中,我有一个属性:

public Product seletedRow
{
    get { return m_Product; }
    set { m_Product = value; PropertyChanged("Product"); }
}

目标是将该属性设置为listView的选定行,然后在4个文本框中显示此属性的字段。 如果我通过代码手动设置此属性,则可以在文本框中显示信息,但无法从ListView.SelectedItem中确定如何绑定对象。 据我发现我应该使用OneWayToSource绑定模式,但我不知道如何。

我也对其他解决方案持开放态度,只要可以在MVVM模式中使用它即可。

做这样的事情可能更好。 这样,您甚至不需要任何代码。

{Binding ElementName=myListView, Path=SelectedItem.ID, UpdateSourceTrigger=PropertyChanged}

您需要为ListView分配一个这样的名称。

<ListView Name="myListView">

看起来像这样。

<ListView Name="myListView">
    <ListView.View>
                <GridView>
                    <GridViewColumn Header="ID" Width="75" DisplayMemberBinding="{Binding ID}" />
                    <GridViewColumn Header="Name" Width="170" DisplayMemberBinding="{Binding Name}" />
                    <GridViewColumn Header="Price" Width="100" DisplayMemberBinding="{Binding Price}" />
                    <GridViewColumn Header="Reseller" Width="Auto" DisplayMemberBinding="{Binding Reseller}" />
                </GridView>
            </ListView.View>
</ListView>

<TextBox Text="{Binding ElementName=myListView, Path=SelectedItem.ID, UpdateSourceTrigger=PropertyChanged}"/>

编辑:

如果您不想扩展使用ACB的逻辑,那么可能像ACB一样可以这样做。

acb:CommandBehavior.Event="SelectedItemChanged"
acb:CommandBehavior.Command="{Binding SelectedItemChanged}"
acb:CommandBehavior.CommandParameter="{Binding RelativeSource={RelativeSource Mode=Self}, Path=SelectedItem}"

从本质上讲,这将使您每次在列表上选择新项目时都可以存储特定的SelectedItem

http://marlongrech.wordpress.com/2008/12/13/attachedcommandbehavior-v2-aka-acb/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM