在XAML和C#中绑定以获取按钮中的Array元素

时间:2015-02-14 13:29:21

标签: c# wpf xaml

我试图在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

1 个答案:

答案 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; }
    }