Передать входящую переменную с WPF пользователем, используемым в классе c # - PullRequest
0 голосов
/ 19 декабря 2018

Моя цель - передать входящую переменную пользователем в файле user.xaml (в textBox) и вернуть эту переменную в классе

<UserControl .....>
 <Grid x:Name="GridGlobal">
 <DockPanel Background="White" Margin="5" >
        <StackPanel DockPanel.Dock="Left" HorizontalAlignment="Left" 
Orientation="Horizontal" Margin="10 0 10 0">
            <StackPanel Orientation="Horizontal">
                <TextBox x:Name="txtCommandeUrl"  Width="500" 
                   Height="24" VerticalAlignment="Center"  />
                <mui:ModernButton x:Name="btnSave" Content="{x:Static 
                   p:Resources.Link_Save_Link}" Click="BtnSave_Click" 
                   VerticalAlignment="Center" Command="{Binding 
                  NextCommand, Mode=TwoWay}" IsEnabled="{Binding 
                NextEnabled}"/>                        
            </StackPanel>
        </StackPanel>
  </Grid>
</UserControl>

Я хочу получить свой txtCommandeUrl в классе.cs.

Я хочу использовать этот urlCommandeUrl в своем классе и думает обо всех

Ответы [ 2 ]

0 голосов
/ 19 декабря 2018

Прежде всего, не используйте оба Button.Click и Button.Command, выберите один.

И вы должны выбрать команду:

   <mui:ModernButton x:Name="btnSave" Content="{x:Static 
                   p:Resources.Link_Save_Link}"
                   Command="{Binding NextCommand}"
                   CommanParameter="{Binding ElementName="txtCommandeUrl", Path=Text}"
/>                

Что касается IsEnabled, то, когда вы связываете ICommand с кнопкой, она читает ICommand.CanExecute, чтобы включить / отключить себя.

В общем, если вы хотите создавать приложения в WPF, прочитайте MVVM и некоторую инфраструктуру пользовательского интерфейса, например, ReactiveUI или MVVMLight - это сэкономит вам много времени после освоения одного из них

0 голосов
/ 19 декабря 2018

Я думаю, что вы ищете это:

Добавьте эту функцию на user.xaml.cs

    /// <summary>
    /// Method called on button click.
    /// </summary>
    /// <param name="sender">The <see cref="object"/> sender of the event.</param>
    /// <param name="e">The Routed event arguments <see cref="RoutedEventArgs"/>.</param>
    private void BtnSave_Click(object sender, RoutedEventArgs e)
    {
        // string cmdUrl = txtCommandeUrl.Text;

        // i want to use cmdUrl in other class.cs
        OtherClass.CmdUrl = txtCommandeUrl.Text;
    }

А в другом классе:

public OtherClass 
{
   public CmdUrl { get; set; } 
   ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...