簡體   English   中英

組合框選擇的項目綁定到GridViewColumn,而GridViewColumn綁定到組合框選擇的項目

[英]Combobox selected item binding to GridViewColumn and GridViewColumn binding to combobox selected item

我試圖將我選擇的組合框值=設置為文本框值。 我希望僅在可能的情況下將其保存在xaml中。

<ListView x:Name="ExampleLV" ItemsSource="{Binding Data.Example1Collection}">
    <ListView.View>
        <GridView>
            <GridViewColumn Header="Column1" DisplayMemberBinding="{Binding Values[0].Value}"/>
        </GridView>
    </ListView.View>
</ListView>

<ComboBox Name="ExampleCB" ItemsSource="{Binding Data.Example2Collection}" 
          SelectedItem="{Binding ElementName=ExampleLV, 
          Path=SelectedItem.Values[0].Value, Mode=TwoWay, 
          UpdateSourceTrigger=PropertyChanged}">
    <ComboBox.ItemContainerStyle>
         <Style TargetType="ComboBoxItem">
             <Setter Property="Tag" Value="{Binding ElementName=ExampleLV, Path=SelectedItem.Tag, Mode=TwoWay}"/>
         </Style>
    </ComboBox.ItemContainerStyle>
</ComboBox>

問題不在於所選列表項沒有更新,而是組合框所選更新沒有更新以匹配列表視圖所選項。

是的,Values [0] .Value具有INotifyPropertyChanged接口。

我不了解您是否需要綁定到listview(問題主題)或Textbox(問題主體)。 這是它們的純XAML解決方案:

xmlns:sys="clr-namespace:System;assembly=mscorlib"


    <StackPanel>
        <ListView x:Name="ExampleLV" SelectedValue="{Binding ElementName=Cbox, Path=SelectedValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
            <ListView.ItemsSource>
                <x:Array Type="{x:Type sys:String}">
                    <sys:String>Test1</sys:String>
                    <sys:String>Test2</sys:String>
                    <sys:String>Test3</sys:String>
                </x:Array>
            </ListView.ItemsSource>
            <ListView.View>
                <GridView>
                    <GridViewColumn Header="Column1"/>
                </GridView>
            </ListView.View>
        </ListView>

        <TextBox Text="{Binding ElementName=Cbox, Path=SelectedValue, Mode=TwoWay, UpdateSourceTrigger=LostFocus}"/>

        <ComboBox x:Name="Cbox">
            <ComboBox.ItemsSource>
                <x:Array Type="{x:Type sys:String}">
                    <sys:String>Test1</sys:String>
                    <sys:String>Test2</sys:String>
                    <sys:String>Test3</sys:String>
                </x:Array>
            </ComboBox.ItemsSource>                
        </ComboBox>
    </StackPanel>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM