小编Mar*_*nom的帖子

命令触发后如何使用 MVVM 清除文本框

我的主窗口上有一个文本框控件。

<Grid>
        <TextBox x:Name="messageBox" Margin="252,89,277,300">
            <TextBox.InputBindings>
                <KeyBinding Key="Enter"
                            Command="{Binding TextCommand}"
                            CommandParameter="{Binding Text, ElementName=messageBox}"/>
            </TextBox.InputBindings>
        </TextBox>
    </Grid>
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我已将Enter密钥绑定到当我单击 Enter 时,它会提示一个 MessageBox,其中包含我在 TextBox 中提供的文本。我的问题是..按回车后如何清除文本框?我不想在控件上调用事件,因为这会违背 MVVM 的目的,它还会弄乱我的 MainWindow.cs

正如您所看到的,我已经在主窗口中设置了 DataContext,如下所示。

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        DataContext = new ServerViewModel();
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的 ServerViewModel.cs

class ServerViewModel : INotifyPropertyChanged
    {
        public TextBoxCommand TextCommand { get; }
        public ServerViewModel()
        {
            TextCommand = new TextBoxCommand(SendMessage);
        }

        private void SendMessage(string parameter)
        {
            MessageBox.Show(parameter);
            parameter = "";
        }


        public event PropertyChangedEventHandler …
Run Code Online (Sandbox Code Playgroud)

c# data-binding wpf textbox mvvm

4
推荐指数
1
解决办法
2518
查看次数

为什么我的ListView没有绑定到ItemSource?

所以我有一个非常简单的UI设计,带有ListView和一个按钮.我想在点击按钮时填充列表视图.

 <Grid>
        <Button Click="ButtonBase_OnClick" Content="Button" HorizontalAlignment="Left" Margin="349,259,0,0" VerticalAlignment="Top" Width="75"/>

        <ListView Margin="10,10,10,202" Name="lvUsers" ItemsSource="{Binding SomeData.Users}">
            <ListView.View>
                <GridView>
                    <GridViewColumn Header="Name" Width="120" DisplayMemberBinding="{Binding Name}" />
                </GridView>
            </ListView.View>
        </ListView>

    </Grid>
Run Code Online (Sandbox Code Playgroud)

我已将ListView的ItemSource属性绑定SomeData.Users为ObservableCollectiuon,它应在更新,添加,删除或刷新时通知UI.然后在我有列的下面我将DisplayMember绑定到Name可观察集合的属性.

这是SomeData班级

public class SomeData
    {
        public static ObservableCollection<User> Users { get; } = new ObservableCollection<User>();

        public static void Populate()
        {
            Users.Add(new User() { Name = "John Doe", Age = 42, Mail = "john@doe-family.com" });
            Users.Add(new User() { Name = "Jane Doe", Age = 39, Mail = "jane@doe-family.com" …
Run Code Online (Sandbox Code Playgroud)

c# data-binding wpf listview mvvm

3
推荐指数
1
解决办法
418
查看次数

WPF动画:如何使其滑入?

所以我刚接触动画,我想做一个“滑出”动画,我设法做到了。但是现在我希望它可以通过单击同一按钮来滑入。因此,就像我单击它一样,它滑出,然后再次单击时希望它滑回去。

无需任何代码,只需通过xaml

在此处输入图片说明

这是XAML

<Grid>

        <Grid.Resources>
            <Storyboard x:Key="TransformImage">
                <DoubleAnimation
                    Storyboard.TargetName="MovingImage"
                    Storyboard.TargetProperty="(Image.RenderTransform).(TranslateTransform.X)"
                    By="130" Duration="0:0:0.3">
                </DoubleAnimation>
            </Storyboard>

            <Storyboard x:Key="TransformButton">
                <DoubleAnimation
                    Storyboard.TargetName="btnChange"
                    Storyboard.TargetProperty="(Button.RenderTransform).(TranslateTransform.X)"
                    By="130" Duration="0:0:0.3">
                </DoubleAnimation>
            </Storyboard>
        </Grid.Resources>


        <Grid.Triggers>
            <EventTrigger RoutedEvent="Button.Click" SourceName="btnChange">
                <BeginStoryboard Storyboard="{StaticResource TransformImage}"/>
                <BeginStoryboard Storyboard="{StaticResource TransformButton}"/>
            </EventTrigger>
        </Grid.Triggers>

        <StackPanel Orientation="Horizontal" Margin="0">
            <Image x:Name="MovingImage" Source="logo.png"
                   MaxWidth="120">
                <Image.RenderTransform>
                    <TranslateTransform />
                </Image.RenderTransform>
            </Image>
        </StackPanel>

        <StackPanel
            Panel.ZIndex="1"
            Height="450" 
              Width="120"
              HorizontalAlignment="Left"
              Background="Black"></StackPanel>

        <Button Margin="130,0,0,0" Height="40" Width="120"
                Content="Show Image" x:Name="btnChange"
                HorizontalAlignment="Left" >
            <Button.RenderTransform>
                <TranslateTransform />
            </Button.RenderTransform>
        </Button>
    </Grid>
Run Code Online (Sandbox Code Playgroud)

c# wpf animation xaml storyboard

3
推荐指数
1
解决办法
1959
查看次数

当我添加另一个时,为什么我的第一个javascript会停止?

所以我对JavaScript很新,所以我不是百分之百确定它为什么会这样做.

如果我只有我的loadData.js它工作正常,但只要我将main.js添加到html文档,它似乎跳过loadData.js或者只是忽略它们,我不知道为什么.

我知道getData工作我尝试打印出没有图片中的main.js的数据,它工作得很好.再次看起来它只是在我添加main.js时跳过使用它

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>DummyPage</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" type="text/css" media="screen" href="/css/style.css" />

</head>

<body>

    <!-- The Modal -->
    <div id="myModal" class="modal">

        <!-- Modal content -->
        <div class="modal-content">
            <span class="close">&times;</span>
            <p>Please Select A Item</p>
            <select id="itemSelect">
            </select>
        </div>

    </div>
    <div class="mainBackground">
        <a id="myBtn" href="#" class="helmButtonStyle" onclick="getData()"></a>
    </div>


</body>
<script src="/js/loadData.js"></script>
<script src="/js/main.js"></script>
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
</html>
Run Code Online (Sandbox Code Playgroud)

loadData

function getData() {
    console.log("Hej");
    $.getJSON('http://localhost:53209/api/items', function (data) {
        var html = '';
        var …
Run Code Online (Sandbox Code Playgroud)

html javascript css jquery

3
推荐指数
1
解决办法
62
查看次数

为什么我的SharedPreferences不会保存按钮点击?

所以我试图为我添加一些值,SharedPreferences但每次单击按钮时它都会使用默认值,00所以我的if语句总是返回true,即使它不应该.

private static final String SHARED_FREFS = "sharedPrefs";
private static final String STATE = "state";
Run Code Online (Sandbox Code Playgroud)

这是按钮点击事件

public void onClick(View v) {
                SharedPreferences sharedPreferences = getSharedPreferences(SHARED_FREFS, MODE_PRIVATE);
                SharedPreferences.Editor editor =  sharedPreferences.edit();

                int currentTime = Calendar.getInstance().getTime().getMinutes();
                String eh = sharedPreferences.getString(STATE,  "00");

                if(!Integer.toString(currentTime).equalsIgnoreCase(sharedPreferences.getString(STATE,  "00"))){
                    GetData();
                    editor.putString(STATE, Integer.toString(currentTime));
                    Log.e("ATTENTION!:", "METHOD HAS BEEN FIRED!");
                }
            }
        });
Run Code Online (Sandbox Code Playgroud)

我试图将当前分钟存储在那里,但它没有这样做.我是否需要一个名为data的文件夹,其中包含一个名为的xml文件sharedPrefs

android sharedpreferences

1
推荐指数
1
解决办法
86
查看次数

为什么在正确的时候说不正确的语法

我目前正在尝试在Visual Studio中执行查询,以将用户添加到我的数据库中。我已将数据库添加到服务器资源管理器中,然后右键单击它,然后选择。New query 在我的表中,我有一个名为dbo.User的表,我正在尝试执行此查询。

INSERT INTO User (Username, Password, Color)
VALUES ('Craig', 'password', 'Green')
Run Code Online (Sandbox Code Playgroud)

Intellisense甚至User由于某种原因而被认可Password is highlighted as a keyword

为什么红线用户UserINSERT INTO UserIncorrect syntax near 'User'

sql visual-studio

1
推荐指数
1
解决办法
59
查看次数

如何取消任务类型集合中的特定任务

因此,我试图找出一种取消特定任务的方法。在示例中,我想取消它产生的3个任务中的2个

static async Task Main(string[] args)
{

    var tasks = Enumerable.Range(0, 3).Select(x => Task.Run(() =>
    {
        Counter();
    }));



    await Task.WhenAll(tasks);

    Console.ReadLine();

}

public static void Counter()
{
    while (true)
    {
        for (int i = 0; i < 1000; i++)
        {
            Console.WriteLine(i);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我要while (someProperty)更改someProperty为,false则所有线程都将停止。我想停止2/3,该怎么做?

.net c# multithreading task

0
推荐指数
1
解决办法
32
查看次数