Доступ к значениям из UserControl в конвертере в MainWindow - PullRequest
0 голосов
/ 19 сентября 2018

У меня есть приложение, в котором у меня есть главное окно и одно диалоговое окно.В моем главном окне у меня есть список объектов с двумя свойствами: Имя и Тип.Мое диалоговое окно используется для добавления новых элементов в список.Я создал диалоговое окно как UserControl и использую его как WindowContent для своего диалогового окна.Я открываю диалог с помощью команды, прикрепленной к кнопке.Если результат диалогового окна возвращает истину, то я хотел бы добавить новый элемент в список.Это делается с помощью команды с параметром, а параметр команды создается с помощью многозначного преобразователя.Вот вопрос:

Как получить доступ к свойствам, созданным в usercontrol, в моем конвертере.

MainWindow.xaml

<vu:CustomContentDialogBox x:Name="AddCriterionDialogBox" Caption="Add criterion" WindowWidth="400" 
                           WindowHeight="150" CommandTrue="{Binding Path=CriteriaViewModel.AddCriterionCommand}">
    <vu:CustomContentDialogBox.CommandParameter>
        <MultiBinding Converter="{StaticResource criterionConverter}">
            <Binding Path="Name" />
            <Binding Path="Type" />
        </MultiBinding>
    </vu:CustomContentDialogBox.CommandParameter>
    <vu:CustomContentDialogBox.WindowContent>
        <uc:AddCriterionUserControl />
    </vu:CustomContentDialogBox.WindowContent>
</vu:CustomContentDialogBox>
<Button ToolBar.OverflowMode="Never" Style="{DynamicResource btn_Remove_png}"
        Command="{Binding ElementName=AddCriterionDialogBox, Path=ShowCommand}" />

AddCriterionUserControl.xaml

<Grid>
        <TextBox Name="tbName" Grid.Column="1" Grid.Row="0" HorizontalAlignment="Stretch" 
                 VerticalAlignment="Center" Margin="0,0,10,0" />
        <ComboBox Name="cbCriterionType" Grid.Column="1" Grid.Row="1" HorizontalAlignment="Stretch" 
                 VerticalAlignment="Center" Margin="0,0,10,0" >
            <ComboBoxItem Content="Gain" IsSelected="True" />
            <ComboBoxItem Content="Cost" />
        </ComboBox>
        <Button Grid.Column="1" Grid.Row="3" VerticalAlignment="Center" HorizontalAlignment="Right" Width="60" Height="24" Margin="0,0,10,7" 
                Content="Add" vu:CustomContentDialogBox.CustomContentDialogResult="True"/>
</Grid>

Мне нужно получить доступ к значениям tbName и cbCriterionType из usercontrol в моем конвертере, чтобы иметь возможность создать новый объект с помощью команды CriteriaViewModel.AddCriterionCommand.Должен ли я использовать DependencyProperty?Я стараюсь следовать правилам MVVM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...