希望你能帮我解决这个问题:)
我想要:给四个不同的单选按钮提供以下值: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;
}
我必须一直改变CURSOR.LIMIT(手动)。我希望这个号码能够在收到无线电按钮时自动更改。
方法和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"/>
这应该如何实现它的工作?请编辑代码(如果你烦心的话)我可以看到并了解这一点。
再次感谢!
答案 0 :(得分:2)
要以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;
}
}
答案 1 :(得分:0)
您的xmal代码:
<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示例进行操作。