设置值(int)来检查单选按钮wpf

本文关键字:检查 单选按钮 wpf int 设置 | 更新日期: 2023-09-27 17:50:19

希望你能帮我解决这个问题:)

我想给四个不同的单选按钮提供以下值:30,50,100和200(现在的值是什么并不重要)。现在我需要进入密码,自己修改号码。我想让这些单选按钮在选中时完成工作。

我将代码粘贴在这里。当你向我解释这一点时,你能非常具体吗(如果你可以并且麻烦这样做的话)。

谢谢!

        //Method for establishing connection to database.      
        // Sette parameter for limit
        public static MongoDatabase GetDatabase(string searchText)
        {
           /* try
            {*/
                TweetOC.Clear();
                MongoServerSettings settings = new MongoServerSettings();
                settings.Server = new MongoServerAddress("xxxx", xxxx);
                MongoServer server = new MongoServer(settings);
                MongoDatabase database = server.GetDatabase("tweet_database");
                var collection = database.GetCollection<Tweets>("docs");
                System.Console.WriteLine("5");
                var query = Query.And(Query.Matches("text", searchText),
           Query.NE("geo_enabled", false));
                System.Console.WriteLine("6");
                //var match = Query.ElemMatch("text", query);
                var cursor = collection.Find(query);
            cursor.SetLimit(30);
            System.Console.WriteLine("7");

                //Puts the result from the last query into a list.
                var resultList = cursor.ToList();
                //Iterates over the previous mentioned list and inserts the content into the ObservableCollcetion created earlier.
                foreach (var item in resultList)
                    TweetOC.Add(item);
                System.Console.WriteLine(TweetOC.Count);



                return database;
            }
我必须一直手动更改光标限制。我想当单选按钮被选中时,这个号码会自动改变。

方法和XAML将遵循:

// I want this to be if radiobutton is 20, then this should be sent to cursor.set limit. I cannot make another string in database.cs without getting an error.
    /*  Private void RadioButton_Checked(object sender, RoutedEventArgs e)
         {
             var radioButton = sender as RadioButton;
             if (radioButton == 20)
                 return;
             int intIndex = Convert.ToInt32(radioButton.Content.ToString(Cursor.SetLimit));
         }
     * Remember Checked="RadioButton_Checked" in the XAML if you want to try
         */

四个按钮之一的XAML:

<RadioButton Content="RadioButton" Grid.Column="2" HorizontalAlignment="Left" 
             Margin="20,116,0,0" Grid.Row="2" VerticalAlignment="Top"/>

这看起来应该如何使它工作?请编辑代码(如果你麻烦的话),以便我能看到并理解这一点。

再次感谢!

设置值(int)来检查单选按钮wpf

要以MVVM友好的方式做到这一点,请像这样绑定IsChecked属性:

IsChecked="{Binding Path=CursorLimit, Converter={StaticResource ParamToIntConverter}, ConverterParameter=10}"

当然要为给定的单选按钮设置正确的参数值。如果您不熟悉转换器,您需要在资源中有这样一行(假设您将本地xmlns设置为指向转换器名称空间):

<local:ParamToIntConverter x:Key="ParamToIntConverter"/>

那么你的转换器看起来像:

public class ParamToIntConverter : IValueConverter
{
   public object Convert (...)
   {
       return value.Equals(int.Parse((string)parameter));
   }
   public object ConvertBack(...)
   {
       if ((bool)value)
          return int.Parse((string)parameter);
       else
          return Binding.DoNothing;
   }
}

您的xml代码:

<RadioButton Content="RadioButton" Grid.Column="2" HorizontalAlignment="Left" 
             Margin="20,116,0,0" Grid.Row="2" VerticalAlignment="Top" Checked="RadioButton_Checked" />

*.cs代码:

private void RadioButton_Checked(object sender, RoutedEventArgs e)
{
    // ... do what you need for this button
}

在你的*.cs文件中使用不同的Checked="[insert_method_name]"模板和相同的方法名,并在每个方法中做你需要的。

你也可以试着让它像这个http://www.dotnetperls.com/radiobutton-wpf的例子。