Member 14141512 Ответов: 1

Как я могу использовать две привязки для <textbox> В WPF с MVVM?


Я пишу операции добавления,обновления и удаления для <ListView> в WPF с помощью MVVM.
Мой вопрос заключается в том, как я могу дать две привязки для одного и того же <TextBox>(одна из них предназначена для добавления элемента в <ListView>, а другая-для обновления(selectedItem of <ListView>))

Что я уже пробовал:

Когда я пишу привязку для добавления, она успешно работает.А также когда я пишу привязку для обновления выбранной строки, она записывается в <TextBox>.Но мне нужно, чтобы они работали вместе.Я попробовал "MultiBinding", но результат не был успешным.Надеюсь, вы мне поможете..

Для добавления:
<TextBox Grid.Column="1" x:Name="txtSurname" Text="{Binding Path=Student.Surname, Mode=TwoWay}">
    <TextBox.Effect>
        <DropShadowEffect  ShadowDepth="3" Color="#75B07A"/>
    </TextBox.Effect>
</TextBox>-->

Для обновления:
<TextBox Grid.Column="1" x:Name="txtSurname" Text="{Binding ElementName=lstStuds, Path=SelectedItem.Surname}">
    <TextBox.Effect>
        <DropShadowEffect  ShadowDepth="3" Color="#75B07A"/>
    </TextBox.Effect>
</TextBox>

Это мой <listview> :
<ListView x:Name="lstStuds" ItemsSource="{Binding Path=Students}" SelectedItem="{Binding SelectedStudent}"  Grid.Column="1" Grid.Row="1" Grid.RowSpan="3" Margin="0,10,20,20" FontSize="16">
           <ListView.Effect>
               <DropShadowEffect  ShadowDepth="3" Color="#75B07A"/>
           </ListView.Effect>
           <ListView.View>
               <GridView>
                   <GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}" Width="150"/>
                   <GridViewColumn Header="Surname" DisplayMemberBinding="{Binding Surname}" Width="150"/>
               </GridView>
           </ListView.View>


А мои пуговицы:
 <Button Content="Add" Command="{Binding AddCommand}" Width="120" Height="auto" FontSize="18" Margin="0 0 0 10">
                    <Button.Effect>
                        <DropShadowEffect ShadowDepth="3" Color="#75B07A"/>
                    </Button.Effect>
                </Button>

<Button Content="Update" Command="{Binding EditCommand}" CommandParameter="{Binding ElementName=lstStuds, Path=SelectedItem}" Width="120" Height="auto" FontSize="18" Margin="0 0 0 10">
                  <Button.Effect>
                        <DropShadowEffect ShadowDepth="3" Color="#75B07A"/>
                    </Button.Effect>
                </Button>

1 Ответов

Рейтинг:
2

Gerry Schmitz

Вы привязываетесь к "сущности" (модели), а не к "выбранному элементу" (части представления); который равен нулю, когда источник данных пуст.

При добавлении сущность является новым объектом (добавляемым в источник данных); в противном случае это существующий элемент из источника данных.

Ваш "MVVM" истекает кровью, так что не называйте его так ...


Member 14141512

Я новичок в паттерне "MVVM", и это мой первый проект "MVVM".Я стараюсь учиться, и мне нужна помощь, поэтому я буду рад, если вы мне поможете.Как я могу использовать две привязки для одного и того же элемента? Или для этого есть какой-то способ?

Member 14721302

Я столкнулся с той же проблемой, нашли ли вы какое-нибудь решение?