我试图在XAML
中实现按钮,其中按钮的Content
必须来自array
代码中的C#
。
这是我的C#
代码的一部分,它有一个整数数组[,] arr
public sealed partial class MainPage : Page
{
public MainPage()
{
this.NavigationCacheMode = NavigationCacheMode.Required;
}
public int [,] arr; //This array gets values from another C# file in the Main method
private void Click_Me1(object sender, RoutedEventArgs e)
{
Button obj = (Button)sender;
//some code
}
private void Click_Me2(object sender, RoutedEventArgs e)
{
Button obj = (Button)sender;
// some code
}
}
这是我的XAML代码的一部分,我有2个按钮 -
<Button x:Name="Click_Me1"
Content="4"
Click="Start"
HorizontalAlignment="Left"
Margin="123,45,0,0"
VerticalAlignment="Top" />
<Button x:Name="Click_Me2"
Content="5"
Click="Start"
HorizontalAlignment="Left"
Margin="123,45,0,0"
VerticalAlignment="Top" />
在这些按钮中,我想要arr
代码的数组C#
中的内容。我知道XAML
是声明性语言,因此我们无法直接获取数组的值。那么如何在此使用binding
?
答案 0 :(得分:0)
您应该使用MVVM模式。 XAML代码:
<ListView ItemsSource="{Binding ButtonContents}">
<ListView.ItemTemplate>
<DataTemplate>
<Button Content="{Binding }"></Button>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
ViewModel代码:
class MainViewModel : ViewModelBase
{
public MainViewModel()
{
ButtonContents = new ObservableCollection<string>();
ButtonContents.Add("3");
ButtonContents.Add("4");
}
public ObservableCollection<string> ButtonContents { get; set; }
}