小编Che*_*hce的帖子

使用参数进行Prism命令绑定?

我有一个工作超链接如下:

XAML:

 <TextBlock >
    <Hyperlink Command="{Binding NavHomeViewCommand}" >
       <Run Text="{Binding PersonSelected.PersonKnownName}" />
    </Hyperlink>
</TextBlock>
Run Code Online (Sandbox Code Playgroud)

构造函数:

 navHomeViewCommand = new DelegateCommand(NavHomeView);
Run Code Online (Sandbox Code Playgroud)

命令:

     private readonly ICommand navHomeViewCommand;
    public ICommand NavHomeViewCommand
    {
        get
        { return navHomeViewCommand; }
    }
    private void NavHomeView()
    {
        int val;
        val = PersonSelected.PersonKnownID);
        var parameters = new NavigationParameters();
        parameters.Add("To", val);
        _regionManager.RequestNavigate("MainRegion", new Uri("HomeView", UriKind.Relative), parameters);
    }
Run Code Online (Sandbox Code Playgroud)

如果我想有多个超链接,如...

     <Hyperlink Command="{Binding NavHomeViewCommand}" >
       <Run Text="{Binding PersonSelected.PersonKnownName}" />
    </Hyperlink>
    <Hyperlink Command="{Binding NavHomeViewCommand}" >
       <Run Text="{Binding PersonSelected.PersonKnownName2}" />
    </Hyperlink>
    <Hyperlink Command="{Binding NavHomeViewCommand}" >
       <Run …
Run Code Online (Sandbox Code Playgroud)

c# wpf command prism parameter-passing

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

WPF Datagrid 单击行以打开新页面

我的第一篇文章在这里!和新的编码!...

我在页面上的框架中有一个 WPF Datagrid。我想单击(最好单击)一行并使用存储在其中一列中的 ID 值导航到(打开)一个新页面。

使用 MouseDoubleClick 有时我可以双击行来打开一个页面。但有时它会抛出:“program.exe 中发生类型为‘System.NullReferenceException’的未处理异常附加信息:未将对象引用设置为对象的实例。”

在线(有关完整方法,请参阅下面的代码):

string ID = ((DataRowView)PersonDataGrid.SelectedItem).Row["PersonID"].ToString();
Run Code Online (Sandbox Code Playgroud)

XAML:

<DataGrid x:Name="PersonDataGrid" AutoGenerateColumns="False" 
     SelectionMode="Single" SelectionUnit ="FullRow"      
     MouseDoubleClick="PersonDataGrid_CellClicked"  >
  <DataGrid.Columns>
      <DataGridTextColumn Binding="{Binding Path=PersonID}" 
          ClipboardContentBinding="{x:Null}" Header="ID"  />
  </DataGrid.Columns>
  <DataGrid.CellStyle>
      <Style TargetType="DataGridCell" BasedOn="{StaticResource myDataGridCellStyle}">
           <EventSetter Event="DataGridCell.MouseLeftButtonDown" Handler="PersonDataGrid_CellClicked"/>
      </Style>
   </DataGrid.CellStyle>
</DataGrid>
Run Code Online (Sandbox Code Playgroud)

背后的代码:

private void PersonDataGrid_CellClicked(object sender, MouseButtonEventArgs e)

    {
        string ID = ((DataRowView)PersonDataGrid.SelectedItem).Row["PersonID"].ToString();

        SelectedPersonID = Int32.Parse(ID);

        this.NavigationService.Navigate(new PersonProfile());
    }
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来打开 PersonProfile 页面?有没有一种简单的方法可以通过单击一行来打开页面?

谢谢。

c# wpf xaml datagrid click

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

使用while循环在List中存储类

我正在将数据读入人员类,然后将人员类存储到集合中.

ObservableCollection<Personnel> Personnels = new ObservableCollection<Personnel>();
Personnel personnel = new Personnel();
Run Code Online (Sandbox Code Playgroud)

...代码省略...

while (myReader.Read())
{
   personnel.PersonID = myReader.GetInt32(0);
   personnel.PersonNameID = myReader.GetInt32(1);
   personnel.PersonWage = myReader.GetInt32(2);
   personnel.PersonWages = String.Format("{0:N0}", personnel.PersonWage);
   // more personnel. items...
   Personnels.Add(personnel);       }
Run Code Online (Sandbox Code Playgroud)

我的问题是Personnels集合完全填写了只读入最后一份人事记录的人事记录.在Personnels集合中说出100个人员类记录但是所有人都有相同的数据,最后一个人员类的记录.

为什么Personnels集合没有填充每个不同的人员类,因为它在循环中被读取?

c# wpf list

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

标签 统计

c# ×3

wpf ×3

click ×1

command ×1

datagrid ×1

list ×1

parameter-passing ×1

prism ×1

xaml ×1